#pragma once // DesignManager for DX based applications // // Version: 1.0.0 // // Platform Includes #include // Standard Namespaces #include // Std I/O // Application Includes // Local Definitions #define MAX_DM_NAME 60 // Max Name size #define MAX_DM_VALUE 256 // Max Value size #define MAX_DM_VERSION 30 // Max Version info size // XML Element Names #define DM_NODE_DM "DESIGNMANIFEST" // Design Manifest #define DM_NODE_DS "DESIGNSET" // Design Set #define DM_NODE_DE "DESIGNELEMENT" // Design Element // XML Attribute Names #define DM_ATTR_NAME "NAME" // Name= #define DM_ATTR_VERSION "VERSION" // Version= #define DM_ATTR_TYPE "TYPE" // Type= // Element Types #define DM_TYPE_PAGE "PAGE" // Page #define DM_TYPE_VIEW "VIEW" // View #define DM_TYPE_FORM "FORM" // Form #define DM_TYPE_SFORM "SUBFORM" // Subform #define DM_TYPE_FSET "FRAMESET" // Frameset #define DM_TYPE_AGENT "AGENT" // Agent #define DM_TYPE_IMAGE "IMAGERESOURCE" // Image Resource #define DM_TYPE_SFIELD "SHAREDFIELD" // Shared Field #define DM_TYPE_SACTION "SHAREDACTION" // Shared Action #define DM_TYPE_LIB "LIBRARY" // Library #define DM_TYPE_FOLDER "FOLDER" // Folder #define DM_TYPE_OUTLINE "OUTLINE" // Outline #define DM_TYPE_DBICON "DBICON" // DbIcon #define DM_TYPE_SHCOL "SHAREDCOLUMN" // Shared Column #define DM_TYPE_HABOUT "HELPABOUT" // Help About #define DM_TYPE_HUSING "HELPUSING" // Help Using // Encoded line types #define DM_LINE_UNDEFINED 0 // Line type is undefined #define DM_LINE_MANIFEST 1 // Line is a DesignManifest #define DM_LINE_SET 2 // Line is a DesignSet #define DM_LINE_ELEMENT 3 // Line is a DesignElement #define DM_LINE_MANIFEST_END 4 // Line is the end of a DesignManifest #define DM_LINE_SET_END 5 // Line is the end of a DesignSet #define DM_LINE_ELEMENT_END 6 // Line is the end of an element #define DM_LINE_VALUE 7 // Line is a value #define DM_LINE_STRUCT 8 // Line is XML structure #define DM_LINE_COMMENT 9 // Line is Comment #define DM_LINE_INVALID 10 // Line is Invalid // Encoded element types #define DM_ELEMENT_NONE 0 // Element type is undefined #define DM_ELEMENT_PAGE 1 // Element type is Page #define DM_ELEMENT_VIEW 2 // Element type is View #define DM_ELEMENT_FORM 3 // Element type is Form #define DM_ELEMENT_SFORM 4 // Element type is Subform #define DM_ELEMENT_FSET 5 // Element type is FrameSet #define DM_ELEMENT_AGENT 6 // Element type is Agent #define DM_ELEMENT_IMAGE 7 // Element type is ImageResource #define DM_ELEMENT_SFIELD 8 // Element type is SharedField #define DM_ELEMENT_SACTION 9 // Element type is SharedAction #define DM_ELEMENT_LIB 10 // Element type is Library #define DM_ELEMENT_FOLDER 11 // Element type is Folder #define DM_ELEMENT_OUTLINE 12 // Element type is Outline #define DM_ELEMENT_DBICON 13 // Element type is DbIcon #define DM_ELEMENT_SHCOL 14 // Element is a Shared Column #define DM_ELEMENT_HABOUT 15 // Element is Help About #define DM_ELEMENT_HUSING 16 // Element is Help Using class DesignManifestLine { public: // Constructor DesignManifestLine(char * szLine); // Destructor ~DesignManifestLine(void); // Public Members int LineType; // Encoded Line Type int ElementType; // Encoded Element Type char szName[MAX_DM_NAME]; // Element Name char szValue[MAX_DM_VALUE]; // Element Value (URL) char szVersion[MAX_DM_VERSION]; // Element Version private: int EncodeElementType(char * szType); };