C\#로 ActiveX 컨트롤 작성(2)
Homer
나의 이전 블 로그 에서 가장 기본 적 인 ActiveX 컨트롤 을 실현 했다.물론 우리 가 작성 한 임 무 는 아직 완성 되 지 않 았 다.우선 JS 와 의 상호작용 을 시도 해 보 자.
저 희 는 데모 에 ShowMessage 방법 을 추가 합 니 다.
public void ShowMessage(string msg)
{
if(msg != null)
{
MessageBox.Show(msg);
}
}
우 리 는 다시 번역 했다.페이지 를 다시 방문 하기 전에 html 코드 를 수정 합 니 다.
classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" Width="184" Height="96" > 이제 다시 방문 합 니 다http://localhost/helloworld.htm Click 단 추 를 누 르 면 상호작용 을 할 수 있 을 것 입 니 다. 그러나 결 과 는 매우 유 감 스 러 웠 다.우 리 는 IE 가 대화 상자 에서 뛰 어 나 온 것 을 발견 했다.그림 과 같다. 4.567916.확인 을 클릭 한 후에 우 리 는 JS 가 잘못 보고 한 것 을 발견 했다.알림 에 따라 IE 설정 을 수정 하여 컨트롤 을 실행 할 수 있 을 것 으로 판단 합 니 다.IE 를 여 는 도구―인터넷 옵션―>안전―로 컬 Intranet―>사용자 정의 등급―>안전 으로 표시 되 지 않 은 ActiveX 컨트롤 을 초기 화하 고 실행 하 며 값 을 사용 합 니 다.우 리 는 페이지 를 새로 고 쳐 서 이제 야 정확하게 실행 할 수 있 게 되 었 다. 물론,우 리 는 우리 의 고객 이 우리 와 마찬가지 로 이 값 을 수정 하 기 를 기대 할 수 없다.하 나 는 조작 이 번 거 로 운 것 이 고,다른 하 나 는 컴퓨터 에 매우 큰 안전 위험 을 가 져 왔 다.인터넷 에서 검색 한 결과 IObject Safety 인 터 페 이 스 를 실현 하고 ActiveX 컨트롤 을 안전 한 ActiveX 컨트롤 로 표시 해 야 합 니 다.MSDN 을 검색 한 후에 나 는 IObject Safety 인터페이스의 정 의 를 찾 았 다.잘 됐 네.우선 우 리 는 스스로 C\#로 이 인 터 페 이 스 를 실현 한다. [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IObjectSafety { // methods void GetInterfacceSafyOptions( System.Int32 riid, out System.Int32 pdwSupportedOptions, out System.Int32 pdwEnabledOptions); void SetInterfaceSafetyOptions( System.Int32 riid, System.Int32 dwOptionsSetMask, System.Int32 dwEnabledOptions); } 주의 하 세 요.이 GUID 는 고 칠 수 없습니다.그리고 우 리 는 Demo 류 에서 이 인 터 페 이 스 를 실현 한다.코드 추가: IObjectSafety 구성원\#region IObjectSafety 멤버 public void GetInterfacceSafyOptions(Int32 riid, out Int32 pdwSupportedOptions, out Int32 pdwEnabledOptions) { // TODO: 덧붙이다 WebCamControl.GetInterfacceSafyOptions 실현 pdwSupportedOptions = 1; pdwEnabledOptions = 2; } public void SetInterfaceSafetyOptions(Int32 riid, Int32 dwOptionsSetMask, Int32 dwEnabledOptions) { // TODO: 덧붙이다 WebCamControl.SetInterfaceSafetyOptions 이루어지다 } #endregion 다시 컴 파일 한 다음 IE 의 설정 을 고 칩 니 다.이제 우 리 는 JS 와 의 상호작용 에 문제 가 없다 는 것 을 알 게 되 었 다. 이렇게 해서 가장 기본 적 인 ActiveX 컨트롤 을 다 썼 습 니 다.너 는 이 컨트롤 을 바탕 으로 네가 필요 로 하 는 모든 기능 을 추가 할 수 있다.여기까지 컨트롤 을 작성 하 는 작업 이 완료 되 었 습 니 다.우리 의 다음 목 표 는 그것 을 발표 하 는 것 입 니 다.