Windows NT 4.0 source code leak
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

#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);
}