WM_DDE_EXECUTE 메시지
DDE(동적 데이터 교환) 클라이언트 애플리케이션은 DDE 서버 애플리케이션에 WM_DDE_EXECUTE 메시지를 게시하여 일련의 명령으로 처리할 문자열을 서버에 보냅니다. 서버 애플리케이션은 응답으로 WM_DDE_ACK 메시지를 게시해야 합니다.
이 메시지를 게시하려면 다음 매개 변수를 사용하여 PostMessage 함수를 호출합니다.
#define WM_DDE_EXECUTE 0x03E8
매개 변수
-
wParam
-
메시지를 게시하는 클라이언트 창에 대한 핸들입니다.
-
lParam
-
대화와 관련된 창 유형에 따라 ANSI 또는 유니코드 명령 문자열을 참조하는 전역 메모리 개체를 포함합니다.
설명
명령 문자열은 단일 대괄호([ ])로 묶인 하나 이상의 opcode 문자열로 구성된 null로 끝나는 문자열입니다. 각 opcode 문자열에는 매개 변수 목록이 선택 사항인 다음 구문이 있습니다.
opcode 매개 변수
opcode는 애플리케이션에서 정의한 단일 토큰입니다. 공백, 쉼표, 괄호, 대괄호 또는 따옴표를 포함할 수 없습니다.
매개 변수 목록에는 애플리케이션 정의 값 또는 값이 포함될 수 있습니다. 여러 매개 변수는 쉼표로 구분되고 전체 매개 변수 목록은 괄호로 묶입니다. 매개 변수는 따옴표로 묶인 문자열 내부를 제외하고 쉼표 또는 괄호를 포함할 수 없습니다. 대괄호 또는 괄호 문자가 따옴표로 묶인 문자열에 표시되는 경우 이전 규칙의 경우와 마찬가지로 두 배가 될 필요가 없습니다.
유효한 명령 문자열은 다음과 같습니다.
[connect][download(query1,results.txt)][disconnect]
[query("sales per employee for each district")]
[open("sample.xlm")][run("r1c1")]
[quote_case("This is a "" character")]
[bracket_or_paren_case("()s or []s should be no problem.")]
이전 규칙에 따라 다음과 같이 괄호와 대괄호를 두 배로 묶어야 했습니다.
[bracket_or_paren_case("(())s or [[]]s should be no problem.")]
서버는 두 양식 중 하나로 명령을 구문 분석할 수 있어야 합니다.
유니코드 실행 문자열은 클라이언트 및 서버 창 핸들이 모두 IsWindowUnicode 함수가 TRUE를 반환하는 경우에만 사용해야 합니다.
게시
클라이언트 애플리케이션은 GlobalAlloc 함수를 호출하여 전역 메모리 개체를 할당합니다.
서버가 WM_DDE_EXECUTE 메시지에 회신하여 게시하는 WM_DDE_ACK 메시지를 처리할 때 클라이언트 애플리케이션은 WM_DDE_ACK 메시지에서 반환된 개체를 삭제해야 합니다.
수신
서버 애플리케이션은 긍정적 또는 부정적으로 응답하도록 WM_DDE_ACK 메시지를 게시합니다. 서버는 전역 메모리 개체를 다시 사용해야 합니다.
하위 프로토콜에서 달리 지정하지 않는 한 서버는 실행 명령 문자열에 지정된 모든 작업이 완료될 때까지 WM_DDE_ACK 메시지를 게시해서는 안 됩니다. 이 규칙의 한 가지 예외는 문자열로 인해 서버가 대화를 종료하는 경우입니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|