From b7369a61ef35cdfd60e6687522d8221111dce95a Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期三, 26 六月 2024 11:42:59 +0800 Subject: [PATCH] update xaserverg --- jrj/xframe/wobject/xaserverarg.hpp | 116 ++++++++++++++++++++++++--------------------------------- 1 files changed, 49 insertions(+), 67 deletions(-) diff --git a/jrj/xframe/wobject/xaserverarg.hpp b/jrj/xframe/wobject/xaserverarg.hpp index 9445853..fa73996 100644 --- a/jrj/xframe/wobject/xaserverarg.hpp +++ b/jrj/xframe/wobject/xaserverarg.hpp @@ -26,17 +26,49 @@ 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) { + ((kxaserverarg*)rhs.getNativePointer())->AddRef_(); + this->setNativePointer(rhs.GetNativePtr()); + } + xaserverarg(xaserverarg&& rhs) { + ((kxaserverarg*)rhs.getNativePointer())->AddRef_(); + this->setNativePointer(rhs.GetNativePtr()); + } ~xaserverarg() { - Hxsoft::XFrame::IXAServerArg::ReleaseInstance((Hxsoft::XFrame::IXAServerArg*)getNativePointer()); + ((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; + } + public: /*int AddArg(string argname,double val,string typ=NULL)// alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z"; { @@ -112,6 +144,17 @@ return ((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 @@ -120,74 +163,13 @@ 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; } -public: - int AddArg(string argname, string val, string typ = NULL) //alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W00@Z"; - { - return arg->AddArg(argname, val, typ); - } - - int ClearArgs() //alias "?ClearArgs@IXAServerArg@XFrame@Hxsoft@@QAEHXZ" from "xframe.dll"; - { - return arg->ClearArgs(); - } - - int RemoveArg(string argname) //alias "?RemoveArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W@Z"; - { - return arg->RemoveArg(argname); - } - /*int SetArg(string argname,double val,string typ=NULL) //alias "?SetArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z"; - { - return arg->SetArg(argname,val,typ); - } - int SetArg(string argname,int val,string typ=NULL) //alias "?SetArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WHO@Z"; - { - return arg->SetArg(argname,val,typ); - }*/ - int SetArg(string argname, string val, string typ = NULL) //alias "?SetArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_W00@Z"; - { - return arg->SetArg(argname, val, typ); - } - string GetString() //alias "?GetString@IXAServerArg@XFrame@Hxsoft@@QAEPB_WXZ" from "xframe.dll"; - { - return arg->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 arg->GetArgBool((LPTSTR)argname); - } - double GetArgDouble(string argname) //alias "?GetArgDouble@IXAServerArg@XFrame@Hxsoft@@QAENPA_W@Z"; - { - return arg->GetArgDouble((LPTSTR)argname); - } - int GetArgInt(string argname) //alias "?GetArgInt@IXAServerArg@XFrame@Hxsoft@@QAEHPA_W@Z"; - { - return arg->GetArgInt((LPTSTR)argname); - } - string GetArgString(string argname) //alias "?GetArgString@IXAServerArg@XFrame@Hxsoft@@QAEPA_WPA_W@Z"; - { - return arg->GetArgString((LPTSTR)argname); - } - - int SetParam(LPCTSTR pArgName, LPARAM pValue) - { - return arg->SetParam(pArgName, pValue); - } - - LPARAM GetParam(LPCTSTR pArgName) - { - return arg->GetParam(pArgName); - } }; \ No newline at end of file -- Gitblit v1.9.3