⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmcopyserver.cpp

📁 wince进程间利用WM_COPY传递消息的服务端程序源码。
💻 CPP
字号:
// WMCOPYServer.cpp : Defines the entry point for the console application.

#include "stdafx.h"
#include "WMCOPYHDRS.h"

void Arrange_Ascen(_TCHAR *pString)
{
	for(int iCount=0;iCount<STRLEN(pString)*2;iCount++)
	{
		for(int jCount=iCount+1 ;jCount<=STRLEN(pString)-1;jCount++)
		{
			if(pString[jCount]<pString[iCount])
			{
				_TCHAR szTemp=pString[jCount];
				pString[jCount]=pString[iCount];
				pString[iCount]=szTemp;					
			}
		}
	}
}

void Arrange_Descen(_TCHAR *pString)
{
	for(int iCount=0;iCount<STRLEN(pString)*2;iCount++)
	{
		for(int jCount=iCount+1 ;jCount<=STRLEN(pString)-1;jCount++)
		{
			if(pString[jCount]>pString[iCount])
			{
				_TCHAR szTemp=pString[jCount];
				pString[jCount]=pString[iCount];
				pString[iCount]=szTemp;
			}
		}
	}
}

LRESULT CALLBACK WMCOPYWNDPROC(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

  LPWM_DATASTRUCTURE lpMsg;
  
  if(uMsg == WM_COPYDATA) {
     lpMsg = (LPWM_DATASTRUCTURE)((COPYDATASTRUCT*)lParam)->lpData;
#if _UNICODE && UNICODE
	 SETSTRLEN(lpMsg->Data,(lpMsg->cbSize)*2);
#else
	SETSTRLEN(lpMsg->Data,(lpMsg->cbSize));
#endif
	 
	 switch(lpMsg->iMessage)
	 {
		case	WM_DISPLAY_TEXT:
				TPRINTF(_T("\n"));
				TPRINTF(lpMsg->Data);				
		break;
		case	WM_ASCENDING:
				Arrange_Ascen(lpMsg->Data); 
				TPRINTF(_T("\nServer sorted the data in ascending order successfully\n"));
				TPRINTF(lpMsg->Data);
		break;		 
		case	WM_DESCENDING:
				Arrange_Descen(lpMsg->Data); 
				TPRINTF(_T("\nServer sorted the data in descending order successfully\n"));
				TPRINTF(lpMsg->Data);
		break;		 
		case	WM_QUIT_SERVER:
				PostQuitMessage(0);
		break;
	 }
  }		
  else
   return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

int main(int argc, char* argv[])
{
	MSG iMsg;
	BOOL bVal;
	WNDCLASS WMClass;
	WMClass.style = CS_GLOBALCLASS;
	WMClass.lpfnWndProc = WMCOPYWNDPROC;
	
	SETCONSOLETITLE(WINSERVERNAME);
	if(FINDWINDOW(SERVERWNDCLASSNAME,NULL)!=NULL){
		TPRINTF(_T("WMCOPYSERVER::Server is already running!\n"));
	}
	else{
		WMClass.hInstance = GETMODULEHANDLE;
		WMClass.lpszClassName = SERVERWNDCLASSNAME;
		WMClass.cbClsExtra = 0;
		WMClass.cbWndExtra = 0;
		WMClass.hbrBackground = NULL;
		WMClass.hCursor = NULL;
		WMClass.hIcon = NULL;
		WMClass.lpszMenuName = NULL;
		if(RegisterClass(&WMClass) == 0){
			TPRINTF(_T("WMCOPYSERVER: class registeration failed!\n"));
		}
		else {
			if(CreateWindow((LPCTSTR)SERVERWNDCLASSNAME, NULL, 0, 0, 0, 0, 0,
				NULL, NULL, WMClass.hInstance, NULL) == NULL){
				TPRINTF(_T("\nWMCOPYSERVER: Can't create window!"));
			}
			else {
				TPRINTF(_T("\nWMCOPYSERVER: Server launched successfully!"));
				while((bVal = GetMessage(&iMsg, NULL, 0, 0)) && (bVal != -1))
				DispatchMessage(&iMsg);
			}		  		
		} 
	}

	TPRINTF(_T("\nWMCOPYSERVER: Press Enter to quit..."));
	return getchar();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -