개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.30 23:44

com_get_active_object 함수 사용 방법에 대한 질문

목록
  • NativeScript도사 2일 전 2025.07.30 23:44
  • 7
    1
저는 COM 객체를 사용하기 위해 com_get_active_object 함수를 사용하고 있습니다.
이 함수를 사용할 때, 어떤 경우에 ActiveObject 가 반환되지 않는지 궁금합니다.
그리고 ActiveObject 가 반환되지 않는 경우, 함수의 ReturnCode를 어떻게 처리해야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    com_get_active_object 함수는 COM 객체를 검색하여 반환하는 함수입니다. 이 함수가 ActiveObject를 반환하지 않는 경우는 다음과 같습니다.

    1. COM 객체가 존재하지 않는 경우
    2. COM 객체가 현재 실행 중이지 않은 경우
    3. COM 객체가 등록되지 않은 경우
    4. COM 객체의 CLSID가 잘못된 경우

    ActiveObject가 반환되지 않는 경우, com_get_active_object 함수의 ReturnCode를 다음과 같이 처리할 수 있습니다.

    - S_OK: ActiveObject가 성공적으로 반환됨
    - E_NOINTERFACE: COM 객체의 인터페이스가 존재하지 않음
    - E_POINTER: NULL 포인터가 전달됨
    - E_OUTOFMEMORY: 메모리不足
    - E_FAIL: 오류 발생

    ReturnCode를 처리하는 방법은 다음과 같습니다.

    1. ReturnCode를 확인하여 오류의 원인을 파악합니다.
    2. 오류의 원인을 해결합니다.
    3. com_get_active_object 함수를 다시 호출합니다.

    예를 들어, com_get_active_object 함수가 ActiveObject를 반환하지 않는 경우, 다음과 같이 처리할 수 있습니다.

    #hostingforum.kr
    c
    
    HRESULT hr = CoGetActiveObject(CLSID_객체, NULL, &pActiveObject);
    
    if (SUCCEEDED(hr)) {
    
        // ActiveObject가 성공적으로 반환됨
    
    } else {
    
        // 오류의 원인을 파악하고 처리합니다.
    
        if (hr == E_NOINTERFACE) {
    
            // COM 객체의 인터페이스가 존재하지 않음
    
        } else if (hr == E_POINTER) {
    
            // NULL 포인터가 전달됨
    
        } else if (hr == E_OUTOFMEMORY) {
    
            // 메모리不足
    
        } else {
    
            // 오류 발생
    
        }
    
    }
    
    

    2025-07-30 23:45

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 40,728건 / 10 페이지

검색

게시물 검색