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