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

172 lines
4.4 KiB
C

#ifndef HTTP_OPS_H
#define HTTP_OPS_H
// Macro to convert VT_BOOL values to bool values
static bool VariantToBool(VARIANT_BOOL vBool)
{
if(vBool == VARIANT_TRUE)
return true;
return false;
}
// Static helper functions
HRESULT SendPacket(CHTTPConnectionAgent *pConnectionAgent, CXMLClientPacket *pPacketClass);
HRESULT SendPacketForMethod(CHTTPConnectionAgent *pConnectionAgent, int iPostType/*1 for POST, 2 for M-POST*/, CXMLClientPacket *pPacketClass, DWORD *pdwResultStatus);
HRESULT SendBody(CHTTPConnectionAgent *pConnectionAgent, CXMLClientPacket *pPacketClass, LPWSTR pszBody, DWORD dwBodyLength);
HRESULT SendPacketForMethodWithBody(CHTTPConnectionAgent *pConnectionAgent, int iPostType/*1 for POST, 2 for M-POST*/, CXMLClientPacket *pPacketClass, LPWSTR pwszBody, DWORD dwBodySize, DWORD *pdwResultStatus);
HRESULT EncodeHTTPResponseIntoStream(LPBYTE pXML, DWORD dwSize, VARIANT *pVariant);
HRESULT HandleFilteringAndOutput(CHTTPConnectionAgent *pResultAgent, IStream **ppXMLDocument);
// Main functions for HTTP operations
HRESULT HttpGetObject (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
WmiXMLEncoding iEncoding,
VARIANT_BOOL bQualifierFilter,
VARIANT_BOOL bClassOriginFilter,
VARIANT_BOOL bLocalOnly,
LPCWSTR pszLocale,
LPCWSTR pszObjectPath,
bool bIsNovaPath,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszObjectName,
bool bIsClass,
IWbemContext *pContext,
IStream **ppXMLDocument);
HRESULT HttpExecQuery (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
WmiXMLEncoding iEncoding,
VARIANT_BOOL bQualifierFilter,
VARIANT_BOOL bClassOriginFilter,
LPCWSTR pszLocale,
LPCWSTR pszNamespacePath,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszQuery,
LPCWSTR pszQueryLanguage,
IWbemContext *pContext,
IStream **ppXMLDocument);
HRESULT HttpEnumClass (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
WmiXMLEncoding iEncoding,
VARIANT_BOOL bQualifierFilter,
VARIANT_BOOL bClassOriginFilter,
VARIANT_BOOL bLocalOnly,
LPCWSTR pszLocale,
LPCWSTR pszSuperClassPath,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszObjectName,
VARIANT_BOOL bDeep,
IWbemContext *pContext,
IStream **ppXMLDocument);
HRESULT HttpEnumInstance (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
WmiXMLEncoding iEncoding,
VARIANT_BOOL bQualifierFilter,
VARIANT_BOOL bClassOriginFilter,
VARIANT_BOOL bLocalOnly,
LPCWSTR pszLocale,
LPCWSTR pszClassPath,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszObjectName,
VARIANT_BOOL bDeep,
IWbemContext *pContext,
IStream **ppXMLDocument);
HRESULT HttpEnumClassNames (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
WmiXMLEncoding iEncoding,
LPCWSTR pszLocale,
LPCWSTR pszSuperClassPath,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszObjectName,
VARIANT_BOOL bDeep,
IWbemContext *pContext,
IStream **ppXMLDocument);
HRESULT HttpEnumInstanceNames (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
WmiXMLEncoding iEncoding,
LPCWSTR pszLocale,
LPCWSTR pszClassPath,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszObjectName,
IWbemContext *pContext,
IStream **ppXMLDocument);
HRESULT HttpPutClass (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
LPCWSTR pszLocale,
LPCWSTR pszNamespacePath,
LONG lClassFlags,
IXMLDOMElement *pClassElement,
IWbemContext *pContext,
BSTR *pstrErrors);
HRESULT HttpModifyClass (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
LPCWSTR pszLocale,
LPCWSTR pszNamespacePath,
LONG lClassFlags,
IXMLDOMElement *pClassElement,
IWbemContext *pContext,
BSTR *pstrErrors);
HRESULT HttpPutInstance (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
LPCWSTR pszLocale,
LPCWSTR pszNamespacePath,
LONG lClassFlags,
IXMLDOMElement *pClassElement,
IWbemContext *pContext,
BSTR *pstrErrors);
HRESULT HttpModifyInstance (
LPCWSTR pszUserName,
LPCWSTR pszPassword,
LPCWSTR pszLocale,
LPCWSTR pszNamespacePath,
LONG lClassFlags,
IXMLDOMElement *pClassElement,
IWbemContext *pContext,
BSTR *pstrErrors);
HRESULT HttpGeneralPut (
LPCWSTR pszMethodName,
LPCWSTR pszUserName,
LPCWSTR pszPassword,
LPCWSTR pszLocale,
LPCWSTR pszNamespacePath,
LONG lClassFlags,
IXMLDOMElement *pClassElement,
IWbemContext *pContext,
BSTR *pstrErrors);
HRESULT HttpDeleteClass(
LPCWSTR pszUserName,
LPCWSTR pszPassword,
LPCWSTR pszLocale,
LPCWSTR pszHostURL,
LPCWSTR pszNamespace,
LPCWSTR pszClassName,
IWbemContext *pContext);
#endif