#pragma once 
 | 
#include "xnative.hpp" 
 | 
#include "xcontrol.hpp" 
 | 
namespace Hxsoft{ namespace XFrame 
 | 
{ 
 | 
    class IXAServerArg 
 | 
    { 
 | 
    public: 
 | 
        int ClearArgs(); 
 | 
        int RemoveArg(LPCTSTR pArgName); 
 | 
  
 | 
        int SetArg(LPCTSTR pArgName,LPCTSTR pValue,LPCTSTR pTyp = NULL); 
 | 
        int AddArg(LPCTSTR pArgName,LPCTSTR pValue,LPCTSTR pTyp = NULL); 
 | 
  
 | 
        int GetArgInt(LPTSTR pArgName); 
 | 
        LPTSTR GetArgString(LPTSTR pArgName); 
 | 
        bool GetArgBool(LPTSTR pArgName); 
 | 
        double GetArgDouble(LPTSTR pArgName); 
 | 
  
 | 
        LPCTSTR GetString(); 
 | 
    public: 
 | 
        int SetParam(LPCTSTR pArgName, LPARAM pValue); 
 | 
        LPARAM GetParam(LPCTSTR pArgName); 
 | 
    public: 
 | 
        static IXAServerArg * CreateInstance(); 
 | 
        static int ReleaseInstance(IXAServerArg * pArgs); 
 | 
  
 | 
        int SetXml(LPTSTR pStrXml); 
 | 
    public: 
 | 
        unsigned long AddRef_(); 
 | 
        unsigned long Release_(); 
 | 
    }; 
 | 
}}; 
 | 
  
 | 
using kxaserverarg = Hxsoft::XFrame::IXAServerArg; 
 | 
class xaserverarg : public xnative  
 | 
{ 
 | 
public: 
 | 
    xaserverarg(kxaserverarg* impl) :xnative(impl) {} 
 | 
    xaserverarg():xnative(Hxsoft::XFrame::IXAServerArg::CreateInstance()){} 
 | 
    xaserverarg(xaserverarg& rhs) { 
 | 
        if(rhs.GetKXAServerArg()) rhs.GetKXAServerArg()->AddRef_(); 
 | 
        this->setNativePointer(rhs.GetNativePtr()); 
 | 
    } 
 | 
    xaserverarg(xaserverarg&& rhs) { 
 | 
        ((kxaserverarg*)rhs.getNativePointer())->AddRef_(); 
 | 
        this->setNativePointer(rhs.GetNativePtr()); 
 | 
    } 
 | 
    ~xaserverarg() 
 | 
    { 
 | 
        ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->Release_(); 
 | 
        //Hxsoft::XFrame::IXAServerArg::ReleaseInstance((Hxsoft::XFrame::IXAServerArg*)getNativePointer()); 
 | 
    } 
 | 
public: 
 | 
    kxaserverarg* GetKXAServerArg() 
 | 
    { 
 | 
        return (kxaserverarg*)this->GetNativePtr(); 
 | 
    } 
 | 
public: 
 | 
    xaserverarg& operator =(xaserverarg& rhs) 
 | 
    { 
 | 
        return operator =(rhs.GetKXAServerArg()); 
 | 
    } 
 | 
    xaserverarg& operator =(kxaserverarg* rhs) 
 | 
    { 
 | 
        if (GetKXAServerArg())GetKXAServerArg()->Release_(); 
 | 
        if (rhs)rhs->AddRef_(); 
 | 
        SetNativePtr(rhs); 
 | 
        return *this; 
 | 
    } 
 | 
  
 | 
    operator LPARAM() 
 | 
    { 
 | 
        return (LPARAM)this; 
 | 
    } 
 | 
  
 | 
public: 
 | 
    /*int AddArg(string argname,double val,string typ=NULL)// alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->AddArg(argname,val,typ); 
 | 
    } 
 | 
    int AddArg(string argname,int val,string typ=NULL) //alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WHO@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->AddArg(argname,val,typ); 
 | 
    }*/ 
 | 
    int AddArg(string argname, xstring val) //alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W00@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->AddArg(argname, val.c_str(), NULL); 
 | 
    } 
 | 
    int AddArg(string argname,string val,string typ=NULL) //alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W00@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->AddArg(argname,val,typ); 
 | 
    } 
 | 
     
 | 
    int ClearArgs() //alias "?ClearArgs@IXAServerArg@XFrame@Hxsoft@@QAEHXZ"  from "xframe.dll"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->ClearArgs(); 
 | 
    } 
 | 
     
 | 
    int RemoveArg(string argname) //alias "?RemoveArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->RemoveArg(argname); 
 | 
    } 
 | 
    /*int SetArg(string argname,double val,string typ=NULL) //alias "?SetArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetArg(argname,val,typ); 
 | 
    } 
 | 
    int SetArg(string argname,int val,string typ=NULL) //alias "?SetArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WHO@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetArg(argname,val,typ); 
 | 
    }*/ 
 | 
    int SetArg(string argname,string val,string typ=NULL) //alias "?SetArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W00@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetArg(argname,val,typ); 
 | 
    } 
 | 
    xstring GetString() //alias "?GetString@IXAServerArg@XFrame@Hxsoft@@QAEPB_WXZ"  from "xframe.dll"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetString(); 
 | 
    } 
 | 
    static void* CreateInstance() //alias "?CreateInstance@IXAServerArg@XFrame@Hxsoft@@SAPAV123@XZ"; 
 | 
    { 
 | 
        return Hxsoft::XFrame::IXAServerArg::CreateInstance(); 
 | 
    } 
 | 
    static int ReleaseInstance(void* p) //alias "?ReleaseInstance@IXAServerArg@XFrame@Hxsoft@@SAHPAV123@@Z";  
 | 
    { 
 | 
        Hxsoft::XFrame::IXAServerArg::ReleaseInstance((Hxsoft::XFrame::IXAServerArg*)p); 
 | 
        return 1; 
 | 
    } 
 | 
    bool GetArgBool(string argname) //alias "?GetArgBool@IXAServerArg@XFrame@Hxsoft@@QAE_NPA_W@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgBool((LPTSTR)argname); 
 | 
    } 
 | 
    double GetArgDouble(string argname) //alias "?GetArgDouble@IXAServerArg@XFrame@Hxsoft@@QAENPA_W@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgDouble((LPTSTR)argname); 
 | 
    } 
 | 
    int  GetArgInt(string argname) //alias "?GetArgInt@IXAServerArg@XFrame@Hxsoft@@QAEHPA_W@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgInt((LPTSTR)argname); 
 | 
    } 
 | 
    xstring GetArgString(string argname) //alias "?GetArgString@IXAServerArg@XFrame@Hxsoft@@QAEPA_WPA_W@Z"; 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgString((LPTSTR)argname); 
 | 
    } 
 | 
  
 | 
    int SetParam(LPCTSTR pArgName, xcontrol& xc) 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName,(LPARAM)xc.getNativePointer()); 
 | 
    } 
 | 
  
 | 
    int SetParam(LPCTSTR pArgName, HWND hWnd) 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName, (LPARAM)hWnd); 
 | 
    } 
 | 
  
 | 
    int SetParam(LPCTSTR pArgName, KXMLDOMElement ele) 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName, ele.ptr()); 
 | 
    } 
 | 
  
 | 
    int SetParam(LPCTSTR pArgName, LPARAM pValue) 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName,pValue); 
 | 
    } 
 | 
     
 | 
    LPARAM GetParam(LPCTSTR pArgName) 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetParam(pArgName); 
 | 
    } 
 | 
  
 | 
    void* GetControl(LPCTSTR pArgName) 
 | 
    { 
 | 
        return (void*)((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetParam(pArgName); 
 | 
    } 
 | 
    HWND GetHWND(LPCTSTR pArgName) 
 | 
    { 
 | 
        return (HWND)((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetParam(pArgName); 
 | 
    } 
 | 
  
 | 
    template<class T> 
 | 
    int SetParam(LPCTSTR pArgName, T pValue) 
 | 
    { 
 | 
        return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetParam(pArgName, (LPARAM)pValue); 
 | 
    } 
 | 
  
 | 
    template<class T> 
 | 
    T GetParam(LPCTSTR pArgName) 
 | 
    { 
 | 
        return (T)((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetParam(pArgName); 
 | 
    } 
 | 
}; 
 | 
  
 | 
class xaserverargPtr 
 | 
{ 
 | 
public: 
 | 
    xaserverarg* arg; 
 | 
public: 
 | 
    xaserverargPtr() :arg(new xaserverarg) {} 
 | 
    xaserverargPtr(LPARAM* val) :arg((xaserverarg*)val) {} 
 | 
    xaserverargPtr(xaserverarg* val) :arg(val) {} 
 | 
    xaserverargPtr(xaserverarg val) :arg(new xaserverarg(val)){} 
 | 
public: 
 | 
    xaserverarg* value() { return arg; } 
 | 
public: 
 | 
    operator xaserverarg& () { return *arg; } 
 | 
    operator xaserverarg* () { return arg; } 
 | 
    xaserverarg* operator ->() { return arg; } 
 | 
}; 
 |