2025-04-27 07:49:33 -04:00

176 lines
6.8 KiB
C

#ifndef WMI_XML_STRINGS_H
#define WMI_XML_STRINGS_H
// List of HTTP Methods supported by this extension
#define HTTP_POST_METHOD "POST"
#define HTTP_MPOST_METHOD "M-POST"
#define HTTP_OPTIONS_METHOD "OPTIONS"
// These are headers used in an M-POST request
#define HTTP_MAN_HEADER "http://www.dmtf.org/cim/mapping/http/v1.0"
#define HTTP_NS "ns="
// The Server Variable that gives the HTTP Version # and its possible values
#define SV_SERVER_PROTOCOL "SERVER_PROTOCOL"
#define SV_HTTP_1_0 "HTTP/1.0"
#define SV_HTTP_1_1 "HTTP/1.1"
// List of content types we support
#define HTTP_TEXTXML_CONTENTTYPE "text/xml"
#define HTTP_APPXML_CONTENTTYPE "application/xml"
// Media type parameters
#define HTTP_PARAMETER_CHARSET "charset="
// A Macro to skip white spaces - useful in header parsing
#define SKIPWS(x) while (x && isspace (*x)) x++;
// Fragments of the response header
#define NORMAL_HTTP_HEADER "Content-type: text/xml; charset=\"utf-8\"\r\n"
#define MAN_HTTP_HEADER "Ext:\r\nCache-Control: no-cache\r\nMan: http://www.dmtf.org/cim/mapping/http/v1.0 ; ns="
#define CRLF_HTTP_HEADER "\r\n"
#define CIMOP_HTTP_HEADER "CIMOperation: MethodResponse\r\n\r\n"
#define HTTP_STATUS_200_OK "200 OK"
#define HTTP_STATUS_207_OK "207 MultiStatus"
static LPCSTR CHUNKED_HTTP_HEADER = "Transfer-Encoding: chunked\r\nContent-type: text/xml; charset=\"utf-8\"\r\n";
// Various intrinsinc method names
#define ASSOCIATORS_METHOD L"Associators"
#define ASSOCIATOR_NAMES_METHOD L"AssociatorNames"
#define REFERENCES_METHOD L"References"
#define REFERENCE_NAMES_METHOD L"ReferenceNames"
#define GET_CLASS_METHOD L"GetClass"
#define GET_INSTANCE_METHOD L"GetInstance"
#define DELETE_CLASS_METHOD L"DeleteClass"
#define DELETE_INSTANCE_METHOD L"DeleteInstance"
#define CREATE_CLASS_METHOD L"CreateClass"
#define CREATE_INSTANCE_METHOD L"CreateInstance"
#define ENUMERATE_INSTANCES_METHOD L"EnumerateInstances"
#define EXEC_QUERY_METHOD L"ExecQuery"
#define ENUMERATE_INSTANCENAMES_METHOD L"EnumerateInstanceNames"
#define ENUMERATE_CLASSNAMES_METHOD L"EnumerateClassNames"
#define ENUMERATE_CLASSES_METHOD L"EnumerateClasses"
#define GET_PROPERTY_METHOD L"GetProperty"
#define SET_PROPERTY_METHOD L"SetProperty"
#define MODIFY_CLASS_METHOD L"ModifyClass"
#define MODIFY_INSTANCE_METHOD L"ModifyInstance"
#ifdef WMI_XML_WHISTLER
// Various Whistler Method Names
#define GET_OBJECT_METHOD L"GetObject"
#define ADD_METHOD L"Add"
#define REMOVE_METHOD L"Remove"
#define RENAME_METHOD L"Rename"
#define GET_OBJECT_SECURITY_METHOD L"GetObjectSecurity"
#define PUT_OBJECT_SECURITY_METHOD L"PutObjectSecurity"
#endif
// Parameters of a Request
#define ASSOC_CLASS_PARAM L"AssocClass"
#define CLASS_NAME_PARAM L"ClassName"
#define DEEP_INHERITANCE_PARAM L"DeepInheritance"
#define INCLUDE_CLASS_ORIGIN_PARAM L"IncludeClassOrigin"
#define INCLUDE_QUALIFIERS_PARAM L"IncludeQualifiers"
#define INSTANCE_NAME_PARAM L"InstanceName"
#define LOCAL_ONLY_PARAM L"LocalOnly"
#define MODIFIED_CLASS_PARAM L"ModifiedClass"
#define MODIFIED_INSTANCE_PARAM L"ModifiedInstance"
#define NEW_CLASS_PARAM L"NewClass"
#define MODIFIED_CLASS_PARAM L"ModifiedClass"
#define LFLAGS_PARAM L"LFlags"
#define NEW_INSTANCE_PARAM L"NewInstance"
#define NEW_VALUE_PARAM L"NewValue"
#define OBJECT_NAME_PARAM L"ObjectName"
#define PROPERTY_LIST_PARAM L"PropertyList"
#define PROPERTY_NAME_PARAM L"PropertyName"
#define QUERY_LANGUAGE_PARAM L"QueryLanguage"
#define QUERY_PARAM L"Query"
#define RESULT_CLASS_PARAM L"ResultClass"
#define RESULT_ROLE_PARAM L"ResultRole"
#define ROLE_PARAM L"Role"
static LPCWSTR STRING_TYPE = L"string";
static LPCWSTR FALSE_WSTR = L"FALSE";
static LPCWSTR TRUE_WSTR = L"TRUE";
static LPCWSTR WQL_WSTR = L"WQL";
static LPCWSTR SELECT_WSTR = L"select ";
static LPCWSTR FROM_WSTR = L" from ";
static LPCWSTR BACK_SLASH_WSTR = L"\\";
static LPCWSTR DOT_SIGN = L".";
static LPCWSTR COMMA_SIGN = L",";
static LPCWSTR EQUALS_SIGN = L"=";
static LPCWSTR COLON_SIGN = L":";
static LPCWSTR QUOTE_SIGN = L"\"";
// Various tags we need to retreive
#define CIM_TAG L"CIM"
#define CLASS_TAG L"CLASS"
#define CLASSNAME_TAG L"CLASSNAME"
#define CLASSPATH_TAG L"CLASSPATH"
#define IMETHODCALL_TAG L"IMETHODCALL"
#define INSTANCE_TAG L"INSTANCE"
#define INSTANCENAME_TAG L"INSTANCENAME"
#define INSTANCEPATH_TAG L"INSTANCEPATH"
#define IPARAMVALUE_TAG L"IPARAMVALUE"
#define KEYBINDING_TAG L"KEYBINDING"
#define KEYVALUE_TAG L"KEYVALUE"
#define LOCALCLASSPATH_TAG L"LOCALCLASSPATH"
#define LOCALINSTANCEPATH_TAG L"LOCALINSTANCEPATH"
#define LOCALNAMESPACEPATH_TAG L"LOCALNAMESPACEPATH"
#define MESSAGE_TAG L"MESSAGE"
#define METHOD_TAG L"METHOD"
#define METHODCALL_TAG L"METHODCALL"
#define MULTIREQ_TAG L"MULTIREQ"
#define NAMESPACEPATH_TAG L"NAMESPACEPATH"
#define PARAMETER_TAG L"PARAMETER"
#define PARAMETERARRAY_TAG L"PARAMETER.ARRAY"
#define PARAMETERREFERENCE_TAG L"PARAMETER.REFERENCE"
#define PARAMETERREFARRAY_TAG L"PARAMETER.REFARRAY"
#define PARAMVALUE_TAG L"PARAMVALUE"
#define PROPERTY_TAG L"PROPERTY"
#define PROPERTYARRAY_TAG L"PROPERTY.ARRAY"
#define PROPERTYREFERENCE_TAG L"PROPERTY.REFERENCE"
#define PROPERTYREFARRAY_TAG L"PROPERTY.REFARRAY"
#define PROPERTYOBJECT_TAG L"PROPERTY.OBJECT"
#define PROPERTYOBJECTARRAY_TAG L"PROPERTY.OBJECTARRAY"
#define QUALIFIER_TAG L"QUALIFIER"
#define SIMPLEREQ_TAG L"SIMPLEREQ"
#define VALUE_TAG L"VALUE"
#define VALUEARRAY_TAG L"VALUE.ARRAY"
#define VALUENAMEDOBJECT_TAG L"VALUE.NAMEDOBJECT"
#define VALUEREFERENCE_TAG L"VALUE.REFERENCE"
#define VALUEREFARRAY_TAG L"VALUE.REFARRAY"
#define VALUEOBJECT_TAG L"VALUE.OBJECT"
#define VALUEOBJECTARRAY_TAG L"VALUE.OBJECTARRAY"
#define CONTEXTOBJECT_TAG L"CONTEXTOBJECT"
#define CONTEXTPROPERTY_TAG L"CONTEXTPROPERTY"
#define CONTEXTPROPERTYARRAY_TAG L"CONTEXTPROPERTY.ARRAY"
// Various Attribute names we need
extern BSTR ARRAYSIZE_ATTRIBUTE;
extern BSTR CIMVERSION_ATTRIBUTE;
extern BSTR DTDVERSION_ATTRIBUTE;
extern BSTR CLASS_NAME_ATTRIBUTE;
extern BSTR CLASS_ORIGIN_ATTRIBUTE;
extern BSTR ID_ATTRIBUTE;
extern BSTR NAME_ATTRIBUTE;
extern BSTR OVERRIDABLE_ATTRIBUTE;
extern BSTR PROTOVERSION_ATTRIBUTE;
extern BSTR REFERENCECLASS_ATTRIBUTE;
extern BSTR SUPERCLASS_ATTRIBUTE;
extern BSTR TOINSTANCE_ATTRIBUTE;
extern BSTR TOSUBCLASS_ATTRIBUTE;
extern BSTR AMENDED_ATTRIBUTE;
extern BSTR TYPE_ATTRIBUTE;
extern BSTR VALUE_TYPE_ATTRIBUTE;
extern BSTR VTTYPE_ATTRIBUTE;
extern BSTR WMI_ATTRIBUTE;
static BYTE NEWLINE [] = { 0x0D, 0x00, 0x0A, 0x00 };
static BYTE UTF16SIG [] = { 0xFF, 0xFE };
#endif