다음을 통해 공유


DdeInitializeW 함수(ddeml.h)

DDEML(동적 데이터 교환 관리 라이브러리)에 애플리케이션을 등록합니다. 애플리케이션은 다른 DDEML(동적 데이터 교환 관리 라이브러리) 함수를 호출하기 전에 이 함수를 호출해야 합니다.

통사론

UINT DdeInitializeW(
  [in, out] LPDWORD     pidInst,
  [in]      PFNCALLBACK pfnCallback,
  [in]      DWORD       afCmd,
            DWORD       ulRes
);

매개 변수

[in, out] pidInst

형식: LPDWORD

애플리케이션 인스턴스 식별자입니다. 초기화 시 이 매개 변수는 0을 가리킵니다. 함수가 성공하면 이 매개 변수는 애플리케이션의 인스턴스 식별자를 가리킵니다. 이 값은 필요한 다른 모든 DDEML 함수에서 idInst 매개 변수로 전달되어야 합니다. 애플리케이션이 DDEML DLL(동적 연결 라이브러리)의 여러 인스턴스를 사용하는 경우 애플리케이션은 각 인스턴스에 대해 다른 콜백 함수를 제공해야 합니다.

pidInst 0이 아닌 값을 가리키는 경우 DDEML의 다시 초기화가 암시됩니다. 이 경우 pidInst 유효한 애플리케이션 인스턴스 식별자를 가리킵니다.

[in] pfnCallback

형식: PFNCALLBACK

애플리케이션 정의 DDE 콜백 함수에 대한 포인터입니다. 이 함수는 시스템에서 보낸 DDE 트랜잭션을 처리합니다. 자세한 내용은 DdeCallback 콜백 함수를 참조하세요.

[in] afCmd

형식: DWORD

APPCMD_, CBF_MF_ 플래그 집합입니다. APPCMD_ 플래그는 DdeInitialize특별한 지침을 제공합니다. CBF_ 플래그는 특정 유형의 트랜잭션이 콜백 함수에 도달하지 못하도록 하는 필터를 지정합니다. MF_ 플래그는 DDE 모니터링 애플리케이션이 모니터링하는 DDE 작업의 유형을 지정합니다. 이러한 플래그를 사용하면 콜백 함수에 대한 불필요한 호출을 제거하여 DDE 애플리케이션의 성능을 향상시킵니다.

이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
APPCLASS_MONITOR
0x00000001L
애플리케이션이 시스템에서 DDE 작업을 모니터링할 수 있도록 합니다. 이 플래그는 DDE 모니터링 애플리케이션에서 사용하기 위한 것입니다. 애플리케이션은 하나 이상의 모니터 플래그를 APPCLASS_MONITOR 플래그와 결합하여 모니터링할 DDE 작업의 유형을 지정합니다. 자세한 내용은 다음 설명 섹션을 참조하세요.
APPCLASS_STANDARD
0x00000000L
애플리케이션을 표준(비모니터링) DDEML 애플리케이션으로 등록합니다.
APPCMD_CLIENTONLY
0x00000010L
애플리케이션이 DDE 대화의 서버가 되는 것을 방지합니다. 애플리케이션은 클라이언트일 수 있습니다. 이 플래그는 DDEML에 의한 리소스 사용을 줄입니다. 여기에는 CBF_FAIL_ALLSVRXACTIONS 플래그의 기능이 포함됩니다.
APPCMD_FILTERINITS
0x00000020L
애플리케이션이 문자열 핸들을 만들고 서비스 이름을 등록하거나 DdeNameService 또는 DdeInitialize 함수를 호출하여 필터링을 해제할 때까지 DDEML이 애플리케이션에 XTYP_CONNECTXTYP_WILDCONNECT 트랜잭션을 보내지 못하도록 합니다. 이 플래그는 애플리케이션이 플래그를 지정하는지 여부에 관계없이 애플리케이션이 처음으로 DdeInitialize를 호출할 때 항상 적용됩니다. 이후 DdeInitialize호출할 때 이 플래그를 지정하지 않으면 애플리케이션의 서비스 이름 필터가 꺼지지만 지정하면 애플리케이션의 서비스 이름 필터가 켜집니다.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
콜백 함수가 서버 트랜잭션을 수신하지 못하도록 합니다. 시스템은 이 애플리케이션에 트랜잭션을 보내는 각 클라이언트에 DDE_FNOTPROCESSED 반환합니다. 이 플래그는 모든 CBF_FAIL_ 플래그를 결합하는 것과 같습니다.
CBF_FAIL_ADVISES
0x00004000
콜백 함수가 XTYP_ADVSTARTXTYP_ADVSTOP 트랜잭션을 수신하지 못하도록 합니다. 시스템은 XTYP_ADVSTART 또는 XTYP_ADVSTOP 트랜잭션을 서버에 보내는 각 클라이언트에 DDE_FNOTPROCESSED 반환합니다.
CBF_FAIL_CONNECTIONS
0x00002000
콜백 함수가 XTYP_CONNECTXTYP_WILDCONNECT 트랜잭션을 수신하지 못하도록 합니다.
CBF_FAIL_EXECUTES
0x00008000
콜백 함수가 XTYP_EXECUTE 트랜잭션을 수신하지 못하도록 합니다. 시스템은 서버에 XTYP_EXECUTE 트랜잭션을 보내는 클라이언트에 DDE_FNOTPROCESSED 반환합니다.
CBF_FAIL_POKES
0x00010000
콜백 함수가 XTYP_POKE 트랜잭션을 수신하지 못하도록 합니다. 시스템은 서버에 XTYP_POKE 트랜잭션을 보내는 클라이언트에 DDE_FNOTPROCESSED 반환합니다.
CBF_FAIL_REQUESTS
0x00020000
콜백 함수가 XTYP_REQUEST 트랜잭션을 수신하지 못하도록 합니다. 시스템은 XTYP_REQUEST 트랜잭션을 서버에 보내는 클라이언트에 DDE_FNOTPROCESSED 반환합니다.
CBF_FAIL_SELFCONNECTIONS
0x00001000
콜백 함수가 애플리케이션의 자체 인스턴스에서 XTYP_CONNECT 트랜잭션을 수신하지 못하도록 합니다. 이 플래그는 애플리케이션이 자체 인스턴스와 DDE 대화를 설정하지 못하도록 합니다. 애플리케이션 자체의 다른 인스턴스와 통신 해야 하지만 자체와 통신 해야 하는 경우이 플래그를 사용 해야 합니다.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
콜백 함수가 알림을 받지 못하도록 합니다. 이 플래그는 모든 CBF_SKIP_ 플래그를 결합하는 것과 같습니다.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
콜백 함수가 XTYP_CONNECT_CONFIRM 알림을 받지 못하도록 합니다.
CBF_SKIP_DISCONNECTS
0x00200000
콜백 함수가 XTYP_DISCONNECT 알림을 받지 못하도록 합니다.
CBF_SKIP_REGISTRATIONS
0x00080000
콜백 함수가 XTYP_REGISTER 알림을 받지 못하도록 합니다.
CBF_SKIP_UNREGISTRATIONS
0x00100000
콜백 함수가 XTYP_UNREGISTER 알림을 받지 못하도록 합니다.
MF_CALLBACKS
0x08000000
트랜잭션이 시스템의 모든 DDE 콜백 함수로 전송 될 때마다 콜백 함수에 알 붙입니다.
MF_CONV
0x40000000
대화가 설정되거나 종료될 때마다 콜백 함수에 알깁니다.
MF_ERRORS
0x10000000
DDE 오류가 발생할 때마다 콜백 함수에 알깁니다.
MF_HSZ_INFO
0x01000000
DDE 애플리케이션이 문자열 핸들의 사용 횟수를 만들거나 해제하거나 증가하거나 DdeUninitialize 함수를 호출한 결과로 문자열 핸들이 해제될 때마다 콜백 함수에 알합니다.
MF_LINKS
0x20000000
advise 루프가 시작되거나 종료될 때마다 콜백 함수에 알깁니다.
MF_POSTMSGS
0x04000000
시스템 또는 애플리케이션이 DDE 메시지를 게시할 때마다 콜백 함수에 알깁니다.
MF_SENDMSGS
0x02000000
시스템 또는 애플리케이션이 DDE 메시지를 보낼 때마다 콜백 함수에 알깁니다.

ulRes

형식: DWORD

예약; 는 0으로 설정해야 합니다.

반환 값

형식: UINT

함수가 성공하면 반환 값이 DMLERR_NO_ERROR.

함수가 실패하면 반환 값은 다음 값 중 하나입니다.

발언

DDEML의 여러 인스턴스를 사용하는 애플리케이션은 인스턴스 간에 DDEML 개체를 전달해서는 안 됩니다.

DDE 모니터링 애플리케이션은 동일한 애플리케이션 인스턴스의 컨텍스트 내에서 DDE 작업(대화 설정, 트랜잭션 발급 등)을 수행하려고 시도해서는 안 됩니다.

동일한 태스크의 인스턴스가 이미 진행 중인 동기 트랜잭션이 있는 경우 DMLERR_REENTRANCY 오류와 함께 동기 트랜잭션이 실패합니다.

CBF_FAIL_ALLSVRXACTIONS 플래그를 사용하면 DDEML이 모든 서버 트랜잭션을 필터링하고 이후 DdeInitialize호출하여 변경할 수 있습니다. APPCMD_CLIENTONLY 플래그는 DDEML이 서버에 대한 키 리소스를 만들지 못하게 하고 DdeInitialize대한 후속 호출로 변경할 수 없습니다.

ANSI 버전과 유니코드 버전의 DdeInitialize있습니다. 호출된 버전은 DDE 대화(ANSI 또는 유니코드)를 제어하는 데 사용되는 창 프로시저 유형과 CONVCONTEXT 구조체(CP_WINANSI 또는 CP_WINUNICODE)의 iCodePage 멤버에 대한 기본값을 결정합니다.

메모

ddeml.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 DdeInitialize를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ddeml.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

참고 항목

동적 데이터 교환 관리 라이브러리 개요