From e3f724c9fd36995c207a6ed173849c20aaa2e3d7 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 17 十二月 2024 13:06:22 +0800
Subject: [PATCH] update

---
 jrj/xframe/wobject/xaserverarg.hpp |   84 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/jrj/xframe/wobject/xaserverarg.hpp b/jrj/xframe/wobject/xaserverarg.hpp
index 0909ca6..524d230 100644
--- a/jrj/xframe/wobject/xaserverarg.hpp
+++ b/jrj/xframe/wobject/xaserverarg.hpp
@@ -1,6 +1,6 @@
 #pragma once
 #include "xnative.hpp"
-
+#include "xcontrol.hpp"
 namespace Hxsoft{ namespace XFrame
 {
 	class IXAServerArg
@@ -26,17 +26,54 @@
 		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::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;
+	}
+
+	operator LPARAM()
+	{
+		return (LPARAM)this;
+	}
+
 public:
 	/*int AddArg(string argname,double val,string typ=NULL)// alias "?AddArg@IXAServerArg@XFrame@Hxsoft@@QAEHPB_WNO@Z";
 	{
@@ -46,6 +83,10 @@
 	{
 		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);
@@ -72,7 +113,7 @@
 	{
 		return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->SetArg(argname,val,typ);
 	}
-	string GetString() //alias "?GetString@IXAServerArg@XFrame@Hxsoft@@QAEPB_WXZ"  from "xframe.dll";
+	xstring GetString() //alias "?GetString@IXAServerArg@XFrame@Hxsoft@@QAEPB_WXZ"  from "xframe.dll";
 	{
 		return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetString();
 	}
@@ -97,9 +138,24 @@
 	{
 		return ((Hxsoft::XFrame::IXAServerArg*)getNativePointer())->GetArgInt((LPTSTR)argname);
 	}
-	string GetArgString(string argname) //alias "?GetArgString@IXAServerArg@XFrame@Hxsoft@@QAEPA_WPA_W@Z";
+	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)
@@ -112,6 +168,26 @@
 		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

--
Gitblit v1.9.3