DDE(동적 데이터 교환)는 공유 메모리를 사용하여 애플리케이션 간에 데이터를 교환하는 프로세스 간 통신의 한 형태입니다. 애플리케이션은 일회성 데이터 전송 및 지속적인 교환 및 데이터 업데이트에 DDE를 사용할 수 있습니다.
이 섹션에서
| 이름 | 묘사 |
|---|---|
| DDEML 정보 | 동적 데이터 교환에 대해 설명합니다. |
| 기본 개념 | 동적 데이터 교환과 관련된 주요 개념에 대해 설명합니다. |
| 대화 관리 | 클라이언트와 서버 간의 대화에 대해 설명합니다. |
| 데이터 관리 | 메모리 개체가 한 애플리케이션에서 다른 애플리케이션으로 데이터를 전달하는 방법을 설명합니다. |
| 모니터링 애플리케이션 | 동적 데이터 교환 관리 라이브러리의 요소를 사용하여 시스템에서 동적 데이터 교환 작업을 모니터링하는 애플리케이션을 만드는 방법을 설명합니다. |
| Name Service | 동적 데이터 교환 관리 라이브러리를 통해 서버 애플리케이션이 지원하는 서비스 이름을 등록할 수 있는 방법에 대해 설명합니다. |
| 트랜잭션 관리 | 클라이언트가 트랜잭션을 전송하여 서버에서 데이터 및 서비스를 가져오는 방법에 대해 설명합니다. |
| DDEML 참조 | API 참조를 포함합니다. |
DDEML 함수
| 이름 | 묘사 |
|---|---|
| DdeAbandonTransaction | 지정된 비동기 트랜잭션을 포기하고 트랜잭션과 연결된 모든 리소스를 해제합니다. |
| DdeAccessData | 지정된 DDE 개체의 데이터에 대한 액세스를 제공합니다. 애플리케이션은 개체의 데이터에 대한 액세스를 마쳤을 때 DdeUnaccessData 함수를 호출해야 합니다. |
| DdeAddData | 지정된 DDE 개체에 데이터를 추가합니다. 애플리케이션은 개체의 시작 부분부터 모든 오프셋에서 시작하는 데이터를 추가할 수 있습니다. 새 데이터가 개체에 이미 있는 데이터와 겹치는 경우 새 데이터는 겹치는 바이트의 이전 데이터를 덮어씁니다. 기록되지 않은 개체의 위치 콘텐츠는 정의되지 않습니다. |
| DdeCallback | DDEML(동적 데이터 교환 관리 라이브러리) 함수와 함께 사용되는 애플리케이션 정의 콜백 함수입니다. DDE 트랜잭션을 처리합니다.
PFNCALLBACK 형식은 이 콜백 함수에 대한 포인터를 정의합니다.
DdeCallback 애플리케이션 정의 함수 이름의 자리 표시자입니다. |
| DdeClientTransaction | 클라이언트와 서버 간의 데이터 트랜잭션을 시작합니다. DDE 클라이언트 애플리케이션만 이 함수를 호출할 수 있으며, 애플리케이션은 서버와의 대화를 설정한 후에만 사용할 수 있습니다. |
| DdeCmpStringHandles | 두 문자열 핸들의 값을 비교합니다. 문자열 핸들의 값은 연결된 문자열의 대/소문자와 관련이 없습니다. |
| DdeConnect | 지정된 서비스 이름 및 토픽 이름 쌍을 지원하는 서버 애플리케이션과 대화를 설정합니다. 이러한 서버가 두 개 이상 있는 경우 시스템은 하나만 선택합니다. |
| DdeConnectList | 지정된 서비스 이름 및 토픽 이름 쌍을 지원하는 모든 서버 애플리케이션과 대화를 설정합니다. 애플리케이션은 이 함수를 사용하여 기존 대화 핸들 함수를 전달하여 대화 핸들 목록을 가져올 수도 있습니다. |
| DdeCreateDataHandle | DDE 개체를 만들고 지정된 버퍼의 데이터로 개체를 채웁니다. DDE 애플리케이션은 파트너 애플리케이션에 데이터를 전달하는 트랜잭션 중에 이 함수를 사용합니다. |
| DdeCreateStringHandle | 지정된 문자열을 식별하는 핸들을 만듭니다. DDE 클라이언트 또는 서버 애플리케이션은 문자열 핸들을 다른 DDEML(동적 데이터 교환 관리 라이브러리) 함수에 매개 변수로 전달할 수 있습니다. |
| DdeDisconnect |
DdeConnect 또는 DdeConnectList 함수로 시작된 대화를 종료하고 지정된 대화 핸들을 무효화합니다. |
| DdeDisconnectList | 지정된 대화 목록을 삭제하고 목록과 연결된 모든 대화를 종료합니다. |
| DdeEnableCallback | 호출 애플리케이션에서 현재 설정한 특정 대화 또는 모든 대화에 대해 트랜잭션을 사용하거나 사용하지 않도록 설정합니다. |
| DdeFreeDataHandle | DDE 개체에 요금을 부과하고 개체와 연결된 데이터 핸들을 삭제합니다. |
| DdeFreeStringHandle | 호출 애플리케이션에서 문자열 핸들을 해제합니다. |
| DdeGetData | 지정된 DDE 개체의 데이터를 지정된 로컬 버퍼로 복사합니다. |
| DdeGetLastError | DDEML 함수의 실패로 설정된 가장 최근의 오류 코드를 검색하고 오류 코드를 DMLERR_NO_ERROR 다시 설정합니다. |
| DdeImpersonateClient | DDE 클라이언트 대화에서 DDE 클라이언트 애플리케이션을 가장합니다. |
| DdeInitialize | DDEML(동적 데이터 교환 관리 라이브러리)에 애플리케이션을 등록합니다. 애플리케이션은 다른 DDEML 함수를 호출하기 전에 이 함수를 호출해야 합니다. |
| DdeKeepStringHandle | 지정된 핸들과 연결된 사용 횟수를 증분합니다. 이 함수를 사용하면 애플리케이션이 애플리케이션의 DDE 콜백 함수에 전달된 문자열 핸들을 저장할 수 있습니다. 그렇지 않으면 콜백 함수가 반환될 때 콜백 함수에 전달된 문자열 핸들이 삭제됩니다. 이 함수는 DdeQueryConvInfo 함수에서 반환된 CONVINFO 구조체에서 참조하는 문자열 핸들의 복사본을 유지하는 데도 사용해야 합니다. |
| DdeNameService | DDE 서버에서 지원하는 서비스 이름을 등록하거나 등록 취소합니다. 이 함수는 시스템이 실행 중인 다른 DDEML(동적 데이터 교환 관리 라이브러리) 클라이언트 애플리케이션에 XTYP_REGISTER 또는 XTYP_UNREGISTER 트랜잭션을 보내도록 합니다. |
| DdePostAdvise | 지정된 토픽 및 항목에 대한 활성 조언 루프를 사용하여 각 클라이언트에 대한 호출(서버) 애플리케이션의 DDE 콜백 함수에 XTYP_ADVREQ 트랜잭션을 보냅니다. 서버 애플리케이션은 토픽 이름 또는 항목 이름 쌍과 연결된 데이터가 변경될 때마다 이 함수를 호출해야 합니다. |
| DdeQueryConvInfo | DDE 트랜잭션 및 트랜잭션이 발생하는 대화에 대한 정보를 검색합니다. |
| DdeQueryNextServer | 지정된 대화 목록에서 다음 대화 핸들을 검색합니다. |
| DdeQueryString | 문자열 핸들과 연결된 텍스트를 버퍼에 복사합니다. |
| DdeReconnect | 클라이언트 DDEML(Dynamic Data Exchange Management Library) 애플리케이션이 클라이언트와의 대화를 종료한 서비스와의 대화를 다시 설정하려고 시도할 수 있도록 합니다. 대화가 다시 설정되면 DDEML은 기존의 조언 루프를 다시 설정하려고 시도합니다. |
| DdeSetUserHandle | 애플리케이션 정의 값을 대화 핸들 또는 트랜잭션 식별자와 연결합니다. 이는 비동기 트랜잭션 처리를 간소화하는 데 유용합니다. 애플리케이션은 DdeQueryConvInfo 함수를 사용하여 이 값을 검색할 수 있습니다. |
| DdeUnaccessData | DDE 개체에 액세스하지 않습니다. 애플리케이션이 개체에 대한 액세스를 완료한 후 이 함수를 호출해야 합니다. |
| DdeUninitialize | 호출 애플리케이션과 연결된 모든 DDEML 리소스를 해제합니다. |
DDEML 트랜잭션
| 이름 | 묘사 |
|---|---|
| XTYP_ADVDATA | 데이터 항목의 값이 변경되었음을 클라이언트에 알립니다. DdeCallbackDDE 클라이언트 콜백 함수는 서버와 함께 advise 루프를 설정한 후 이 트랜잭션을 수신합니다. |
| XTYP_ADVREQ | 지정된 토픽 이름 및 항목 이름 쌍에서 알림 트랜잭션이 미해결되고 토픽 이름 및 항목 이름 쌍에 해당하는 데이터가 변경되었음을 서버에 알립니다. 시스템은 서버가 DdePostAdvise 함수를 호출한 후 DdeCallbackDDE 콜백 함수로 이 트랜잭션을 보냅니다. |
| XTYP_ADVSTART | 클라이언트는 XTYP_ADVSTART 트랜잭션을 사용하여 서버와 함께 조언 루프를 설정합니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 DdeClientTransaction 함수의 wType 매개 변수로 XTYP_ADVSTART 지정하면 이 트랜잭션을 수신합니다. |
| XTYP_ADVSTOP | 클라이언트는 XTYP_ADVSTOP 트랜잭션을 사용하여 서버와 함께 advise 루프를 종료합니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 DdeClientTransaction 함수의 XTYP_ADVSTOP 지정하면 이 트랜잭션을 수신합니다. |
| XTYP_CONNECT | 클라이언트는 XTYP_CONNECT 트랜잭션을 사용하여 대화를 설정합니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 DdeConnect 함수를 호출할 때 서버에서 지원하는 서비스 이름(및 NULL 않은 토픽 이름)을 지정하면 이 트랜잭션을 수신합니다. |
| XTYP_CONNECT_CONFIRM | DdeCallbackDDE 서버 콜백 함수는 XTYP_CONNECT_CONFIRM 트랜잭션을 수신하여 클라이언트와 대화가 설정되었는지 확인하고 서버에 대화 핸들을 제공합니다. 시스템은 이전 XTYP_CONNECT 또는 XTYP_WILDCONNECT 트랜잭션의 결과로 이 트랜잭션을 보냅니다. |
| XTYP_DISCONNECT | DdeCallback애플리케이션의 DDE 콜백 함수는 대화에서 애플리케이션의 파트너가 DdeDisconnect 함수를 사용하여 대화를 종료할 때 XTYP_DISCONNECT 트랜잭션을 받습니다. |
| XTYP_ERROR | DdeCallbackDDE 콜백 함수는 심각한 오류가 발생할 때 XTYP_ERROR 트랜잭션을 수신합니다. |
| XTYP_EXECUTE | 클라이언트는 XTYP_EXECUTE 트랜잭션을 사용하여 명령 문자열을 서버에 보냅니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 DdeClientTransaction 함수의 XTYP_EXECUTE 지정하면 이 트랜잭션을 수신합니다. |
| XTYP_MONITOR | DdeCallbackDDE 디버거의 DDE 콜백 함수는 시스템에서 DDE 이벤트가 발생할 때마다 XTYP_MONITOR 트랜잭션을 받습니다. 이 트랜잭션을 수신하려면 애플리케이션이 DdeInitialize 함수를 호출할 때 APPCLASS_MONITOR 값을 지정해야 합니다. |
| XTYP_POKE | 클라이언트는 XTYP_POKE 트랜잭션을 사용하여 원치 않는 데이터를 서버로 보냅니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 DdeClientTransaction 함수의 XTYP_POKE 지정하면 이 트랜잭션을 수신합니다. |
| XTYP_REGISTER | DdeCallbackDDE 콜백 함수는 DDEML 서버 애플리케이션이 DdeNameService 함수를 사용하여 서비스 이름을 등록하거나 시스템 토픽을 지원하는 비 DDEML 애플리케이션이 시작될 때마다 XTYP_REGISTER 트랜잭션 형식을 받습니다. |
| XTYP_REQUEST | 클라이언트는 XTYP_REQUEST 트랜잭션을 사용하여 서버에서 데이터를 요청합니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 DdeClientTransaction 함수의 XTYP_REQUEST 지정하면 이 트랜잭션을 수신합니다. |
| XTYP_UNREGISTER | DdeCallbackDDE 콜백 함수는 DDEML 서버 애플리케이션이 DdeNameService 함수를 사용하여 서비스 이름을 등록 취소하거나 시스템 토픽을 지원하는 비 DDEML 애플리케이션이 종료될 때마다 XTYP_UNREGISTER 트랜잭션을 수신합니다. |
| XTYP_WILDCONNECT |
XTYP_WILDCONNECT 트랜잭션을 사용하면 클라이언트가 지정된 서비스 이름 및 토픽 이름과 일치하는 각 서버의 서비스 이름 및 토픽 이름 쌍에 대해 대화를 설정할 수 있습니다. DdeCallbackDDE 서버 콜백 함수는 클라이언트가 NULL 서비스 이름, NULL 토픽 이름 또는 DdeConnect 호출 또는 DdeConnectList 함수를 호출할 때 이 트랜잭션을 수신합니다. |
| XTYP_XACT_COMPLETE | DdeCallbackDDE 클라이언트 콜백 함수는 DdeClientTransaction 함수에 대한 호출로 시작된 비동기 트랜잭션이 완료되면 XTYP_XACT_COMPLETE 트랜잭션을 수신합니다. |
DDEML 구조체
| 이름 | 묘사 |
|---|---|
| CONVCONTEXT | DDE 클라이언트 애플리케이션에서 제공하는 정보를 포함합니다. 이 정보는 특수화된 또는 언어 간 DDE 대화에 유용합니다. |
| CONVINFO | DDE 대화에 대한 정보를 포함합니다. |
| DDEML_MSG_HOOK_DATA | DDE 메시지에 대한 정보를 포함하고 메시지에서 참조하는 데이터에 대한 읽기 액세스를 제공합니다. 이 구조는 DDEML 모니터링 애플리케이션에서 사용됩니다. |
| MONCBSTRUCT | 현재 DDE 트랜잭션에 대한 정보를 포함합니다. DDE 디버깅 애플리케이션은 시스템이 다른 애플리케이션의 DDE 콜백 함수에 전달하는 트랜잭션을 모니터링할 때 이 구조를 사용할 수 있습니다. |
| MONCONVSTRUCT | DDE 대화에 대한 정보를 포함합니다. DDE 모니터링 애플리케이션은 이 구조를 사용하여 설정되었거나 종료된 대화에 대한 정보를 가져올 수 있습니다. |
| MONERRSTRUCT | 현재 DDE 오류에 대한 정보를 포함합니다. DDE 모니터링 애플리케이션은 이 구조를 사용하여 DDE 관리 라이브러리 함수에서 반환된 오류를 모니터링할 수 있습니다. |
| MONHSZSTRUCT | DDE 문자열 핸들에 대한 정보를 포함합니다. DDE 모니터링 애플리케이션은 DDE 관리 라이브러리의 문자열 관리자 구성 요소의 활동을 모니터링할 때 이 구조를 사용할 수 있습니다. |
| MONLINKSTRUCT | DDE advise 루프에 대한 정보를 포함합니다. DDE 모니터링 애플리케이션은 이 구조를 사용하여 시작되거나 종료된 advise 루프에 대한 정보를 얻을 수 있습니다. |
| MONMSGSTRUCT | DDE 메시지에 대한 정보를 포함합니다. DDE 모니터링 애플리케이션은 이 구조를 사용하여 전송되거나 게시된 DDE 메시지에 대한 정보를 가져올 수 있습니다. |