Ok seems this is a bit above my experience level.
I'm not familiar with the way vs creates dialogs. I use qt for gui's if needed.
Writing to registry is also something unfamiliar.
Well eh you get the picture.
I was hoping to be able to use the methods in the headers to establish communication.
I found your thread
https://www.machsupport.com/forum/index.php?topic=11240.0Installed it.
unfortunately it's expired?
Saw on your yt channel what it does...
You've done exactly what I look for .
I'm still a bit confused though to how you did it and how this works.
Installed vs2010 yesterday which isn't the right one but at least I see the project tree of the sdk plugin.
Watched the video of I believe Jerry on creating a plugin.
You didn't seem to need a plugin.
Your program asks for the mach.exe and the xml?
Found this online
COM clients are applications that make use of a COM object implemented by another application Automation Servers (Automation controllers) and applications that host an ActiveX control (ActiveX containers).
To make information about the COM server available to your client application, you must import the information about the server that is stored in the server's type library. Your application can then use the resulting generated classes to control the server object.
You wrote
"If your development environment has the ability to import a type library that will create the wrapper for you."
searched wrapper
so you took the mach. exe and wrapped it in a class?
I haven't done anything like that
Also what is that machremote example doing.
This seems to connect
void CMachRemoteDlg::OnBnClickedConnect()
{
LPUNKNOWN lpUnk;
LPDISPATCH lpDispatch;
COleException e;
HRESULT res;
if (CLSIDFromProgID(OLESTR("Mach4.Document"), &clsid) != NOERROR)
{
return;
}
if (res = GetActiveObject( clsid, NULL, &lpUnk) == NOERROR)
{
HRESULT hr = lpUnk->QueryInterface(IID_IDispatch,
(LPVOID*)&lpDispatch);
lpUnk->Release();
if (hr == NOERROR)
{
mach4.AttachDispatch(lpDispatch, TRUE);
lpDispatch = mach4.GetScriptDispatch();
scripter.AttachDispatch(lpDispatch, TRUE);
}
connected = true;
m_Status = "Connected to Mach3.";
UpdateData(false);
SetTimer( 1, 200, NULL );
return ;
}
m_Status = "No Connection to Mach3.";
UpdateData(false);
}
Am I correct that there are 3ways to do something similar.
1 plugin.
2 some remote access.
3 wrapper com
trying to figure out which one the easiest is to implement without using vs.