mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.5 KiB
79 lines
2.5 KiB
#include "stdafx.h"
|
|
#include "import.h"
|
|
#include "registry.h"
|
|
#include "machine.h"
|
|
#include "base.h"
|
|
|
|
CONVCONTEXT CCFilter = { sizeof (CONVCONTEXT), 0, 0, 0, 0L, 0L };
|
|
|
|
HDDEDATA CALLBACK GroupDDECallback (UINT uiType, UINT uiFmt, HANDLE hConv,
|
|
HSZ sz1, HSZ sz2, HDDEDATA hData, LONG lData1, LONG lData2)
|
|
{
|
|
return ((HDDEDATA) NULL);
|
|
}/* end GroupDDECallback */
|
|
|
|
void CBaseApp::SendProgmanMsg( CString csMsg )
|
|
{
|
|
INT err = 0;
|
|
|
|
do
|
|
{
|
|
TCHAR buf[BUF_SIZE];
|
|
HSZ hszMachine;
|
|
HSZ hszTopic;
|
|
ULONG DdeInst = 0;
|
|
DWORD dw=0;
|
|
|
|
if ( DMLERR_NO_ERROR != ( dw = DdeInitialize( &DdeInst, (PFNCALLBACK)GroupDDECallback, APPCMD_CLIENTONLY, 0 )))
|
|
{
|
|
wsprintf(buf,_T("error %u\n\r"),dw);
|
|
break;
|
|
}
|
|
|
|
wsprintf( buf, _T("%s\\NDDE$"), TargetMachine.m_MachineName );
|
|
//hszMachine = DdeCreateStringHandle( DdeInst, buf, CP_WINANSI );
|
|
hszMachine = DdeCreateStringHandle( DdeInst, _T("PROGMAN"), CP_WINANSI );
|
|
hszTopic = DdeCreateStringHandle( DdeInst, _T("PROGMAN"), CP_WINANSI );
|
|
|
|
if (( hszMachine == NULL ) || ( hszTopic == NULL ))
|
|
{
|
|
break;
|
|
}
|
|
|
|
HCONV hConv = DdeConnect( DdeInst, hszMachine, hszTopic, &CCFilter );
|
|
if ( hConv == NULL )
|
|
{
|
|
break;
|
|
}
|
|
|
|
HDDEDATA hData = DdeCreateDataHandle( DdeInst, (LPBYTE)(LPCSTR)csMsg, csMsg.GetLength()+1, 0, (HSZ)NULL, CF_TEXT, 0L);
|
|
if ( hData == NULL )
|
|
{
|
|
break;
|
|
}
|
|
|
|
ULONG lResult;
|
|
|
|
if (!DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, (HSZ)NULL,0,XTYP_EXECUTE,10000,&lResult))
|
|
{
|
|
// problem
|
|
break;
|
|
}
|
|
|
|
DdeFreeStringHandle( DdeInst, hszMachine );
|
|
DdeFreeStringHandle( DdeInst, hszTopic );
|
|
DdeFreeDataHandle( hData );
|
|
if (!DdeDisconnect( hConv ))
|
|
{
|
|
} else
|
|
{
|
|
}
|
|
if (!DdeUninitialize( DdeInst ))
|
|
{
|
|
} else
|
|
{
|
|
}
|
|
|
|
// setup icon
|
|
} while (FALSE);
|
|
}
|