Share via


IOleCommandTarget::Exec 메서드(docobj.h)

지정된 명령을 실행하거나 명령에 대한 도움말을 표시합니다.

구문

HRESULT Exec(
  [in]      const GUID *pguidCmdGroup,
  [in]      DWORD      nCmdID,
  [in]      DWORD      nCmdexecopt,
  [in]      VARIANT    *pvaIn,
  [in, out] VARIANT    *pvaOut
);

매개 변수

[in] pguidCmdGroup

명령 그룹의 고유 식별자입니다. 표준 그룹을 지정하려면 NULL 일 수 있습니다.

[in] nCmdID

실행할 명령입니다. 이 명령은 pguidCmdGroup으로 지정된 그룹에 속해야 합니다.

[in] nCmdexecopt

개체의 명령 실행 방식을 지정합니다. 가능한 값은 OLECMDEXECOPTOLECMDID_WINDOWSTATE_FLAG 열거형에서 가져옵니다.

[in] pvaIn

입력 인수를 포함하는 VARIANTARG 구조체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.

[in, out] pvaOut

명령 출력을 받을 VARIANTARG 구조체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.

반환 값

이 메서드는 성공에 대한 S_OK 반환합니다. 다른 가능한 반환 값은 다음과 같습니다.

반환 코드 설명
OLECMDERR_E_UNKNOWNGROUP
pguidCmdGroup 매개 변수는 NULL이 아니지만 인식된 명령 그룹을 지정하지 않습니다.
OLECMDERR_E_NOTSUPPORTED
nCmdID 매개 변수는 pguidCmdGroup으로 식별된 그룹의 유효한 명령이 아닙니다.
OLECMDERR_E_DISABLED
nCmdID로 식별된 명령은 현재 사용하지 않도록 설정되어 있으며 실행할 수 없습니다.
OLECMDERR_E_NOHELP
호출자가 nCmdID로 식별된 명령에 대한 도움을 요청했지만 사용할 수 있는 도움말은 없습니다.
OLECMDERR_E_CANCELED
사용자가 명령 실행을 취소했습니다.

설명

명령의 입력 및 출력 인수 목록과 패키지되는 방법은 각 명령에 고유합니다. 이러한 정보는 명령 그룹의 사양으로 문서화되어야 합니다. ( OLECMDID 열거형의 OLECMDID_ZOOM 설명을 참조하세요.) 특정 정보가 없는 경우 명령은 인수를 사용하지 않고 반환 값이 없는 것으로 간주됩니다.

발신자에게 참고 사항

pguidCmdGroupnCmdID 매개 변수는 함께 호출할 명령을 고유하게 식별합니다. nCmdExecOpt 매개 변수는 수행할 정확한 작업을 지정합니다. 자세한 내용은 OLECMDEXECOPT 열거형을 참조하세요.

대부분의 명령은 인수를 사용하거나 값을 반환하지 않습니다. 이러한 명령의 경우 호출자는 pvaInpvaOut에서 NULL을 전달할 수 있습니다. 하나 이상의 입력 값이 필요한 명령의 경우 호출자는 VARIANTARG 변수를 선언 및 초기화하고 pvaIn에서 해당 변수에 대한 포인터를 전달할 수 있습니다. 명령에 대한 입력이 단일 값인 경우 인수를 VARIANTARG 구조체에 직접 저장하고 함수에 전달할 수 있습니다. 명령에 여러 인수가 필요한 경우 지원되는 형식(예: IDispatch 또는 SAFEARRAY) 중 하나를 사용하여 VARIANTARG 내에서 해당 인수를 적절하게 패키지해야 합니다.

명령이 하나 이상의 인수를 반환하는 경우 호출자는 VARIANTARG를 선언하고, VT_EMPTY 초기화하고, 해당 주소를 pvaOut에 전달해야 합니다. 명령이 단일 값을 반환하는 경우 개체는 해당 값을 pvaOut에 직접 저장할 수 있습니다. 명령에 여러 출력 값이 있는 경우 VARIANTARG에 적합한 방식으로 패키지합니다.

pvaInpvOut은 모두 호출자가 할당하므로 호출자와 호출을 수신하는 개체 모두에 대해 스택 변수가 허용됩니다. 입력 시 0개 또는 1개의 인수를 사용하고 0개 또는 1개의 값을 반환하는 명령의 경우 추가 메모리 할당이 필요하지 않습니다. VARIANTARG에서 지원하는 대부분의 형식에는 메모리 할당이 필요하지 않습니다. 예외로는 SAFEARRAYBSTR이 있습니다.

구현자에 대한 참고 사항

명령 대상은 이 함수를 구현해야 합니다. E_NOTIMPL 유효한 반환 값이 아닙니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 docobj.h

추가 정보

IOleCommandTarget

OLECMDEXECOPT