창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판 (0/1)
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


LIST ALL
Posted by 지상현2007-08-11 16:20:55, Hit : 10805
창조와 ActiveX (2)
Homepage : http://ssidang.x-y.net
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=open_lec&no=113
저번에 이어, 오늘은 드디어 ActiveX 개체를 한번 만들어봅시다.
CreateCOM 라이브러리를 기준으로 설명해보겠습니다.


(5) ActiveX 만들기
일단 ActiveX 개체를 만들어봅시다.
oNew 함수를 이용해서 할 수 있습니다.

먼저 만들고 싶은 ActiveX 개체의 ProgID 란 것을 알아야 합니다.
ProgID는 ActiveX 개체의 이름 같은 것인데, 흔히 "회사.이름.버전" 같은 식으로 짓습니다.

예를 들면,
인터넷 익스플로러 => "InternetExplorer.Application"
XML 파서 => "Microsoft.XMLDOM"
알파 변형 필터 => "DXImageTransform.Microsoft.Alpha"

이밖에도 수많은 ActiveX 개체가 있습니다.

ActiveX 개체를 만들려면 다음과 같이 합니다.




oNew(0, "InternetExplorer.Application", "");

첫 번째 인자와 세 번째 인자는 항상 0과 ""을 넣고, 두 번째 인자만 원하는 개체의 ProgID를 적어주면 됩니다.
개체를 제대로 만들었다면, 어떤 값이 반환됩니다.
실패하면 0이 반환되고, oResult 함수로 실패 이유를 알 수 있습니다.

(6) ActiveX 개체 다루기
ActiveX 개체는 창조의 객체와 매우 비슷합니다.

똑같이 함수와 속성이 있고, 함수를 호출하고, 속성의 값을 가져오거나 대입할 수 있습니다.
이 때 속성의 경우엔 문법적으로 따로 대입하거나 가져올 수 없으므로, 세 경우 모두 oInvoke 함수를 이용해 호출할 수 있습니다.

ㅎ창과 똑같은 ActiveX 개체가 있다고 치고, 예를 들어보겠습니다.




창.제목 := "ActiveX 예제";
핸들 := 창.핸들;
창.보여;

첫 번째 줄은 속성을 대입하는 것이고, 두 번째 줄은 속성을 가져오는 것, 세 번째 줄은 객체의 함수를 호출하는 것입니다.
위 코드를 CreateCOM 라이브러리로는 어떻게 하는지 봅시다.




oInvoke(2, 창, "제목", " 'ActiveX 예제' ");
핸들 := oInvoke(1, 창, "핸들", "");
oInvoke(0, 창, "보여", "");

상관 관계를 잘 보시기 바랍니다.
먼저 첫 번째 인자는 호출하는 방법인데, 0은 함수 호출, 1은 속성 가져오기, 2는 속성 대입하기입니다.
0, 1인 경우엔 함수의 결과와 속성 값을 반환 값으로 받을 수 있습니다.
만약 반환 값이 문자라면 oInvokeStr 함수를 쓰면 됩니다.
두 번째 인자는 객체 자체고, 세 번째 인자는 객체의 함수나 속성 이름입니다.
객체에 무슨 함수나 속성이 있는지는 그 ActiveX에 관련된 문서나 TypeLib 정보를 참조해야 합니다.
여기서는 모두 알고 있다고 가정합시다.

그러면 간단하게 익플 창을 하나 띄워볼까요?




// 익플 창을 띄우는 코드 (의사 코드임)
익플.Navigate("http://cugz.com");
익플.Visible := 참;
익플 개체에 있는 Navigate 함수는 특정 주소로 이동하는 함수입니다.
Visible 속성은 창조에 있는 보이기 속성과 같습니다.

위 코드가 제대로 작동한다면, cugz.com을 띄우는 익플 창이 하나 뜰 것입니다.
위 코드를 CreateCOM을 이용한 코드로 바꿔봅시다.




oInvoke(0, 익플, "Navigate", " 'http://cugz.com' ");
oInvoke(2, 익플, "Visible", "참");

만약, 오류가 발생했다면 oResult 함수로 오류 코드를 얻을 수 있습니다. (0이 나오면 성공한 것입니다.)
또 '익플'이란 개체에 'Navigate'란 함수가 없었다면 실행되지 않고 오류 코드가 설정됩니다.


참, '익플'이란 개체를 쓰기 전에 당연하지만 그 개체를 미리 만들어둬야 합니다.
위에서 '익플'이란 개체를 얻기 위해서는,




실수: 익플;

익플 := oNew(0, "InternetExplorer.Application", "");

같은 식으로 하시면 됩니다.

(7) oInvoke에서 인자 넘기기
CreateCOM에서는 함수마다 다른 개수의 인자를 넘길 수 있도록, 인자 내용을 문자열로 통째로 넘기는 방법을 지원합니다.

규칙은 간단합니다.
각 인자를 , 으로 구분하고, 문자열은 ' 으로 묶습니다. 문자열 안에서 ' 자체를 쓰고 싶다면 '' 라고 쓰면 됩니다.
진리 값은 참, 거짓을 넣으면 됩니다.

123, "가나다라", 거짓
을 바꿔보면

"123, '가나다라', 거짓"
이 됩니다.

이 때, 두 번째 인자에 변수를 쓰게 된다면 어떻게 할까요?
예) 123, 에디트0.문자, 거짓

변수 이름을 그대로 쓰면 안 되고, 다음과 같이 실제 값만 넘어야 합니다.
"123, '" + 에디트0.문자 + "', 거짓"

(8) 만든 개체 지우기
개체를 만들고 필요가 없다면 반드시 지워주는게 좋습니다.
간단하게 oDelete 함수를 이용해서 만들었던(혹은 다른 개체로부터 얻어온) 개체를 집어넣으면 개체를 제거할 수 있습니다.





지금까지 ActiveX 개체를 다루는 아주 기본적인 것들을 살펴봤습니다.
특정한 ActiveX 객체를 다루고 싶다면 먼저 그 ActiveX 개체에 어떤 속성들과 함수가 있는지 문서를 찾아봐야 합니다.
그런 것을 알면 CreateCOM으로 써먹을 수 있을 겁니다.

LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
44
     [re] [요청강좌#14] DLL제작 강의 (미완성) [2]
지상현 2005/10/09  6688
43
   #1 비트 연산이란? - 진수 표기법
지상현 2005/10/09  11415
42
   재미있는 포인터 강좌 -1- [2]
지상현 2005/10/12  6288
41
   환경문 강좌..^^; [문자형 자료] [8]
qkrwhdgns 2006/01/10  5649
40
     환경문 강좌..^^; [실수형 자료] [1]
qkrwhdgns 2006/01/11  5263
39
       환경문 강좌..^^; [진리형 자료] [1]
qkrwhdgns 2006/01/11  5026
38
         환경문 강좌..^^; [예제 소스]
qkrwhdgns 2006/01/11  5291
37
   몇가지 유용한 정보 모음 [5]
최재일 2006/01/13  9378
36
   스크린세이버에대한 분석 [5]
박재성[날개달기] 2006/03/08  5297
35
   한글이 입력되기까지 [4]
지상현 2006/07/29  6494
34
   창조 시작단계 문법배워볼까? [M 0608181240] [8]
박종훈 2006/08/17  6525
33
   API사용을 위한 창조 구조체다루기 [M_S 0608190928] [3]
박종훈 2006/08/18  5557
32
   [창조x] 수줍은 pda프로그래밍시작
이진백 2006/09/11  5807
31
   효과적인 조건문을 위한 논리연산자 [4]
박종훈 2006/10/15  6053
30
   쉽고 빠르게 프로그래밍 하기 위한 방법들
장규형 2006/11/22  5407
29
   창조 첫 시작시 명령어 익혀보자~ [4]
박종훈 2006/12/23  8054
28
   '변수'와의 인터뷰 -_-; [5]
박종훈 2006/12/24  5373
27
   ㅎ사용자함수 알아보기! [2]
박종훈 2006/12/24  5406
26
   환경파일로 파워유저되어보자![개정판] [설명] 1 -- 완성
박종훈 2007/01/02  6120
25
   환경파일로 파워유저되어보자![개정판] [예제/사용!] 2 [6]
박종훈 2007/01/02  7776
24
   골칫거리 ㅎ사용자함수 DLL하나로 해결하기! [7]
박종훈 2007/06/23  7119
23
   창조와 ActiveX (1)
지상현 2007/08/07  8293

   창조와 ActiveX (2)
지상현 2007/08/11  10805
21
   창조입문 : 메모장 만들기 [2]
신용주 2008/12/20  7558
20
   자연수들의 합 쉽게 구하는 방법(수학과 프로그래밍) [7]
박종훈 2009/02/15  6133
LIST ALL   Prev [1][2][3] 4 [5] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인