DdeClientTransaction 함수(ddeml.h)
클라이언트와 서버 간의 데이터 트랜잭션을 시작합니다. DDE(동적 데이터 교환) 클라이언트 애플리케이션만 이 함수를 호출할 수 있으며, 애플리케이션은 서버와의 대화를 설정한 후에만 사용할 수 있습니다.
구문
HDDEDATA DdeClientTransaction(
[in, optional] LPBYTE pData,
[in] DWORD cbData,
[in] HCONV hConv,
[in, optional] HSZ hszItem,
[in] UINT wFmt,
[in] UINT wType,
[in] DWORD dwTimeout,
[out, optional] LPDWORD pdwResult
);
매개 변수
[in, optional] pData
형식: LPBYTE
클라이언트가 서버에 전달해야 하는 데이터의 시작입니다.
필요에 따라 애플리케이션은 서버에 전달할 데이터 핸들(HDDEDATA)을 지정할 수 있으며, 이 경우 cbData 매개 변수를 -1로 설정해야 합니다. 이 매개 변수는 wType 매개 변수가 XTYP_EXECUTE 또는 XTYP_POKE 경우에만 필요합니다. 그렇지 않으면 이 매개 변수는 NULL이어야 합니다.
pData가 데이터 핸들인 트랜잭션을 XTYP_POKE 이 매개 변수의 선택적 사용의 경우 wFmt 매개 변수에 지정된 것과 동일한 데이터 형식을 사용하여 DdeCreateDataHandle 함수에 대한 이전 호출을 통해 핸들을 만들어야 합니다.
[in] cbData
형식:DWORD
데이터가 문자열인 경우 종료 NULL을 포함하여 pData 매개 변수가 가리키는 데이터의 길이(바이트)입니다. 값 -1은 pData 가 전송되는 데이터를 식별하는 데이터 핸들임을 나타냅니다.
[in] hConv
형식: HCONV
트랜잭션이 수행되는 대화에 대한 핸들입니다.
[in, optional] hszItem
형식: HSZ
트랜잭션 중에 데이터가 교환되는 데이터 항목에 대한 핸들입니다. 이 핸들은 DdeCreateStringHandle 함수에 대한 이전 호출에 의해 만들어졌어야 합니다. wType 매개 변수가 XTYP_EXECUTE 경우 이 매개 변수는 무시되며 0L로 설정해야 합니다.
[in] wFmt
형식: UINT
데이터 항목이 제출되거나 요청되는 표준 클립보드 형식입니다.
wType 매개 변수로 지정된 트랜잭션이 데이터를 전달하지 않거나 XTYP_EXECUTE 경우 이 매개 변수는 0이어야 합니다.
wType 매개 변수로 지정된 트랜잭션이 실행되지 않는 DDE 데이터(XTYP_POKE, XTYP_ADVSTART, XTYP_ADVSTOP, XTYP_REQUEST)를 참조하는 경우 wFmt 값은 유효한 미리 정의된(CF_) DDE 형식이거나 유효한 등록된 클립보드 형식이어야 합니다.
[in] wType
형식: UINT
트랜잭션 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
advise 루프를 시작합니다. 대화 내에는 임의의 수의 고유한 조언 루프가 있을 수 있습니다. 애플리케이션은 XTYP_ADVSTART 트랜잭션 형식을 다음 플래그 중 하나 이상과 결합하여 advise 루프 형식을 변경할 수 있습니다.
|
|
advise 루프를 종료합니다. |
|
실행 트랜잭션을 시작합니다. |
|
찌르기 트랜잭션을 시작합니다. |
|
요청 트랜잭션을 시작합니다. |
[in] dwTimeout
형식:DWORD
클라이언트가 동기 트랜잭션에서 서버 애플리케이션의 응답을 기다리는 최대 시간(밀리초)입니다. 이 매개 변수는 비동기 트랜잭션에 대해 TIMEOUT_ASYNC 합니다.
[out, optional] pdwResult
형식: LPDWORD
트랜잭션 결과를 수신하는 변수에 대한 포인터입니다. 결과를 검사 않는 애플리케이션은 이 값에 NULL을 사용할 수 있습니다. 동기 트랜잭션의 경우 이 변수의 하위 순서 단어에는 트랜잭션으로 인한 적용 가능한 DDE_ 플래그가 포함됩니다. 이렇게 하면 DDE_APPSTATUS 비트에 종속된 애플리케이션이 지원됩니다. 그러나 애플리케이션은 DDEML( 동적 데이터 교환 관리 라이브러리 )의 이후 버전에서 지원되지 않을 수 있으므로 더 이상 이러한 비트를 사용하지 않는 것이 좋습니다. 비동기 트랜잭션의 경우 이 변수는 DdeAbandonTransaction 함수 및 XTYP_XACT_COMPLETE 트랜잭션에 사용할 고유한 트랜잭션 식별자로 채워집니다.
반환 값
형식: HDDEDATA
함수가 성공하면 반환 값은 클라이언트가 서버에서 데이터를 기대하는 성공적인 동기 트랜잭션에 대한 데이터를 식별하는 데이터 핸들입니다. 반환 값은 성공적인 비동기 트랜잭션 및 클라이언트가 데이터를 기대하지 않는 동기 트랜잭션의 경우 0이 아닙니다. 반환 값은 실패한 모든 트랜잭션에 대해 0입니다.
DdeGetLastError 함수를 사용하여 다음 값 중 하나일 수 있는 오류 코드를 가져올 수 있습니다.
설명
애플리케이션이 DdeClientTransaction에서 반환된 데이터 핸들을 사용하여 완료되면 애플리케이션은 DdeFreeDataHandle 함수를 호출하여 핸들을 해제해야 합니다.
트랜잭션은 동기 또는 비동기적일 수 있습니다. 동기 트랜잭션 중에 DdeClientTransaction 은 트랜잭션이 성공적으로 완료되거나 실패할 때까지 반환되지 않습니다. 동기 트랜잭션으로 인해 클라이언트는 다양한 비동기 이벤트를 기다리는 동안 모달 루프를 입력합니다. 이 때문에 클라이언트 애플리케이션은 동기 트랜잭션을 기다리는 동안 사용자 입력에 응답할 수 있지만 애플리케이션은 첫 번째 트랜잭션과 연결된 작업으로 인해 두 번째 동기 트랜잭션을 시작할 수 없습니다. 동일한 작업의 instance 이미 진행 중인 동기 트랜잭션이 있는 경우 DdeClientTransaction이 실패합니다.
비동기 트랜잭션 중에 DdeClientTransaction 은 트랜잭션이 시작된 후 를 반환하고 참조할 트랜잭션 식별자를 전달합니다. 서버의 DDE 콜백 함수가 비동기 트랜잭션 처리를 완료하면 시스템은 클라이언트에 XTYP_XACT_COMPLETE 트랜잭션을 보냅니다. 이 트랜잭션은 DdeClientTransaction을 호출하여 시작한 비동기 트랜잭션의 결과를 클라이언트에 제공합니다. 클라이언트 애플리케이션은 DdeAbandonTransaction 함수를 호출하여 비동기 트랜잭션을 중단하도록 선택할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ddeml.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
추가 정보
개념
참조