COM 및 .Net(Windows) com_get_active_object

(PHP 5, PHP 7, PHP 8)

com_get_active_object — COM 개체의 이미 실행 중인 인스턴스에 대한 핸들을 반환합니다.


설명

com_get_active_object(string $prog_id, ?int $codepage = null): variant

com_get_active_object()는 개체가 이미 실행 중인 경우에만 스크립트에 개체를 반환한다는 점을 제외하고 com 개체의 새 인스턴스를 만드는 것과 유사합니다. OLE 응용 프로그램은 잘 알려진 응용 프로그램을 한 번만 시작할 수 있도록 "Running Object Table"이라는 것을 사용합니다. 이 함수는 실행 중인 인스턴스에 대한 핸들을 얻기 위해 COM 라이브러리 함수 GetActiveObject()를 노출합니다.


매개변수

prog_id
prog_id는 액세스하려는 개체의 ProgID 또는 CLSID여야 합니다(예: Word.Application).
codepage
com 클래스에 대해 수행하는 것과 정확히 동일한 방식으로 작동합니다.

반환 값

요청된 개체가 실행 중이면 다른 COM 개체와 마찬가지로 스크립트에 반환됩니다.


오류/예외

이 함수가 실패하는 데에는 여러 가지 이유가 있으며 가장 일반적인 것은 개체가 이미 실행되고 있지 않기 때문입니다. 이 상황에서 예외 오류 코드는 MK_E_UNAVAILABLE이 됩니다. 예외 객체의 getCode 메소드를 사용하여 예외 코드를 확인할 수 있습니다.


변경 로그

버전 설명
8.0.0 codepage는 이제 nullable입니다.

메모

경고 웹 서버 컨텍스트에서 com_get_active_object()를 사용하는 것이 항상 현명한 생각은 아닙니다. 대부분의 COM/OLE 응용 프로그램은 Microsoft Office를 포함하여 둘 이상의 클라이언트를 동시에 처리하도록 설계되지 않았습니다. 관련된 일반적인 문제에 대한 자세한 내용은 » Office의 서버 측 자동화 고려 사항을 읽어야 합니다.