C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56223] 감사합니다.
권기식.with☆ [orion96] 1451 읽음    2009-02-21 17:52
답변 감사합니다.
딱 원하던 것을 가르쳐주셨어요.. ^^


둘리 님이 쓰신 글 :
: 안녕하세요.. ActiveX 관련 프로그래밍 하시나보네요.. 좀 어려운 부분이죠??
:
: 일단 ActiveX 는 COM 기반으로 동작하며 모든 COM 기반 객체는 CLSID 라는 고유 번호를 갖습니다.
: 이 고유 번호를 찾아 보시면 됩니다.
: 간단하게 Registry 를 검색하는 방법도 있지만 별로 추천하지 않고요..
:
: 가령 ShockwaveFlash 를 찾고자 한다면
:
: _GUID clsid;
: HRESULT hr = CLSIDFromProgID (L"ShockwaveFlash.ShockwaveFlash.10", &clsid);
: 위와 같이 찾아 보면 됩니다. 물론 shock wave flash 의 버전에 따라 이름이 다르겠죠..
: 위의 함수는 program id 로부터 clsid 를 찾아오는 기능을 수행합니다.
:
: clsid 를 찾을 경우 hr = 0 이 됩니다. 그렇지 않을 경우 hr < 0 이 됩니다.
:
: 이를 이용하여 검사해 보는 방법이 어떠실지요..
:
:
: 관련 함수로
: CLSIDFromProgID
: CLSIDFromString
: CoCreateInstance
: 등 몇가지가 연관되어 있으니 참고하시기 바랍니다.
:
: 수고하세요~~
:
:
: 권기식.with☆ 님이 쓰신 글 :
: : 안녕하세요?
: :
: : 어떤 프로그램(이하 프로그램A )에서 제공하는 Type Library를 불러와서 사용하려고 합니다.
: : Import Component 하여 팔레트에 컴포넌트를 만들고 이를 가져와서 연동은 잘 되는데...
: :
: : 사용자의 컴퓨터에 프로그램A가 설치되어있지 않는 경우에는 연동 기능을 비활성화시키려고 합니다.
: :
: : 제가 이쪽을 잘 몰라서 설명하기가 힘든데요...
: : 프로그램A가 설치되면 아마도 ActiveX 객체(?)가 OLE 서버에 등록되는 모양입니다.
: : 그래서 그런 컴퓨터에서 프로그램을 실행해서 해당 라이브러리를 사용하려고 하면 클래스가 등록되어있지 않다는 오류가 뜬다고 합니다.
: : 제 생각으로는 프로그램 실행할 때 객체에 메모리를 할당하면 그 때 에러가 나야하지 않을까해서...
: : FormCreate 때 해당 인스턴스가 NULL인지 판단했는데 그렇게는 안되더군요.
: :
: : 레지스트리에서 해당 클래스가 있는지 찾아보는 방법도 생각해봤는데 잘못했는지 안되더라구요.
: :
: : 구체적으로 예를 든다면 Flash Player ActiveX를 import하여 플래쉬 플레이어를 만들었는데 이 프로그램을 실행할 컴퓨터에서 플래쉬 재생이 되는지 안되는지 판단해서 사용자에게 알려주려고 한다는거죠.
: :
: : 어떤 방법이 있을까요?
: :
: : 질문이 이해가 되실지 모르겠네요.. ^^;;;

+ -

관련 글 리스트
56205 ActiveX 가 사용 가능한지 확인하는 방법 권기식.with☆ 1347 2009/02/19
56222     Re:ActiveX 가 사용 가능한지 확인하는 방법 둘리 1683 2009/02/21
56223         감사합니다. 권기식.with☆ 1451 2009/02/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.