액티브X 생성에서 배포까지

2.zip
[button style=”btn-default btn-lg” icon=”glyphicon glyphicon-download-alt” align=”left” type=”link” target=”true” title=”첨부파일 다운로드” link=”http://xahn.iptime.org/blog/wp-content/uploads/2016/11/2.zip” linkrel=””]
액티브X 생성에서 배포까지
 

필자가 액티비X 컨트롤을 처음 접한 것은 지난 96년 여름이었다.
당시 자바 애플릿으로 프로젝트를 진행하던 중 애플릿의 기능적 한계로 인해 새로 나온
액티브X 마이크로소프트의 기술을 사용하는 모험을 하게 됐다. 이때 액티브x는 상당히 새로운
(OLE를 아는 사람들은 별 것 아니라고 말했지만) 기술이어서 많은 사람들이 분주히 ms의 각종
컨퍼런스를  참석하러 다녔던 기억이 안다. 그렇게 시작된 액티브x 컨트롤 개발이 벌써 6년째 접어들었다. 현재의 상황과 비교해 보면 과거에는 액티브x 컨트롤을 개발하기 위한 툴도, 문서도 부족했지만
지금은 아주 많다.

또한 당시 국내외에 인터넷 익스플로러보다는 넷스케이프 네비게이터의 위력이 더 컸기 때문에
브라우저 호환성의 문제를 안고 있는 액티브x 기술은 개발자들을 고민에 빠뜨렸다.

그러나 현재는 넷스케이프와 인터넷익스플로러의 입지가 바뀌었으며 액티브x는 더욱 광범위하게
사용되고 있다. 인터넷 기반의 프로젝트에 좀더 막강한 기능을 제공하기 위해서 DHTML, 자바 스크립트,
애플릿, 플래시 등 다양한 기술을 활용할 수 있지만 이중에서도 가장 막강한 것이
액티브x 컨트롤이라 할 수 있다. 액티브x 컨트롤을 사용함으로써 윈도우 플랫폼의 대부분의 기능을

자유롭게 사용할 수 있다. 지금부터 이러한 액티브x 컨트롤 만드는 방법을 알아보고 그 과정에서 부딪히는 수많은 문제를 하나씩 해결해 보자
개발 도구의 선정
컨트롤을 개발할 때 제일 먼저 고민하는 것이 개발도구일 것이다. 지금은 대부분의 개발도구가
컨트롤 개발을 지원하므로 더욱 그러리라 생각된다. 현재 사용할 수 있는 개발도구는 매우 많다.

개발도구 : 비주얼 C++(ATL), MFC, 비주얼 베이직, 델파이 외 다수
필자는 이 중에서 늘 비주얼 C++를 사용한다. 가장 지원이 잘 되는 개발도구이기 때문이다.
그렇지만 개발도구는 개발자가 잘 쓸 수 있는 것이 더 좋다고 생각된다. 하지만 필자의 또 다른 고민은
ATL을 사용할 것인가 MFC를 사용할 것인가를 판단하는 것이다.

이 두가지 선택에는 표1에서와 같이 장단점이 있다.

즉 크기인가 개발의 용이성인가의 문제다. 필자의 경우는 개발할 컨트롤의 특성에 따라 다르게 사용한다. 즉 모듈이 작고 UI가 간단한 경우 ATL을 사용하고 비교적 화면처리가 많은 경우 MFC를 사용한다. 프로젝트에서 컨트롤을 개발할 경우 어떤 사람은 모든 컨트롤을 ATL로 만들어야 한다고 말한다. 물론 괜찮은 방법일 수도 있지만, 한가지 생각할 것은 프로젝트를 만든 사람이 끝까지 책임지지 않는다는 것이다. 모든 컨트롤을 ATL로 만드는 데는 고급인력을 필요로 하기 때문에 만약 후임 개발자에게 인수인계해야 할 경우 상황을 더욱 어렵게 만들 수 있다. ATL 개발자가 많지 않은 국내 현실에서는 더욱 그러하다.
이번 연재에서는 MFC를 사용해, 좀더 다양한 기능을 제공하는 컨트롤 제작시 발생하는 문제점을 알아보겠다.
컨트롤의 개발
이제 개발도구가 정해졌으니 컨트롤을 개발해 보자. 가장 먼저 할 일은 무엇을 개발할지 스펙을 정하고 비주얼 C++ 프로젝트를 생성하는 것이다. 필자는 현재 IE5.5 환경에 비주얼 C++ 6.0 서비스팩 4를 사용하고 있다. 앞으로의 설명은 이를 기준으로 진행하겠다. 우선 비주얼 C++을 실행해 File / New를 선택한다.
화면1에서처럼 Start라는 프로젝트를 생성한다. 그리고 이를 Release 모드로 컴파일하면 하나의 Start.ocx라는 컨트롤을 얻을 수 있다.

 
이때 결정해야 할 것은 사용하는 MFC.dll을 Share로 사용할 것인지 아니면 액티브X 컨트롤 내로 포함시키는 Static으로 사용할 것인지이다.
Project/Setting 메뉴를 누르면 화면2를 볼 수 있는데 여기서 이를 설정할 수 있다 이 옵션 선택에서 각각에 대한 장단점을 살펴보면 표2와 같다.

이러한 장단점이 있으므로 자신의 프로젝트에 맞게 선택해야 한다. 필자의 경우 컨트롤을 많이 사용하는 인터넷 기반 패키지를 개발할 때는 Share로 사용한다. 대신 패키지 설치시 MFC.dll을 미리 배포하는 방식으로 한다. 그러나 일반 인터넷 사이트인 경우에는 Static을 사용한다.
사용자가 이 사이트를 방문했는데 MFC dll이 설치되고 리부팅하라는 메시지가 나오면(윈도우 2000 이전버전일 경우) 당황할 것이기 때문이다.
Static으로 사용하는 경우 MFC만 약 236kb 정도를 차지하므로 컨트롤의 코드 부분에서 코드가 너무 커지지 않도록 주의해야 한다. 이것을 실제로 배포할 때는 cab파일로 압축해 배포하는데 대개 크기가 반 이상 줄어들게 된다. 이렇게 압축했을 때 크기가 250kb를 넘지 않으면 배포가 가능하다. 필자는 압축해서 450kb정도의 컨트롤을 배포한 적이 잇는데 고객으로부터 큰 불평은 듣지 않았다.
브라우저에 올리기
이제 만들어진 액티브x 컨트롤을 인터넷 익스플로러에 올려보자. 일단 IE에 올리려면 우리는 우리가 만든 컨트롤의 클래스ID를 알아야 한다. 이 ID는 GUID, 즉 세상에서 유일한 아이디로 만들어지므로 우리가 만든 컨트롤은 어느 누가 만든 컨트롤과도 구분할 수 있다.  따라서 여러분이 각자 만들게 되면 컨트롤 이름은 모두 Start.ocx이지만 클래스 아이디는 모두 다른 것이 생성된다. 결국 이름만 같고 다른 컨트롤이 되는 것이다.
이 클래스 ID는 프로젝트 안의 Start.ocx(프로젝트명.odl)이라는 파일에서 발견할 수 있다. 이 파일안에는 여러개의 GUID가 있는 데 그중 가장 아래부분을 보면 다음과 같다.
// Class information for CStartCtrl
[ uuid(63C4E7C7-5286-4003-95CF-CB29DE0173D3),
helpstring(“Start Control”), control ]
coclass Start
{
[default] dispinterface _DStart;
[default, source] dispinterface _DStartEvents;
};
이 부분이 컨트롤의 클래스 ID를 담는 부분이다. 즉 63C4E7C7-5286-4003-95CF-CB29DE0173D3 이 필자가 만든 Strat 컨트롤의 클래스 ID이고, 여러분은 이 부분에 다른 값이 들어 있을 것이다.
한번 찾아보기 바란다. 이 클래스 ID를 갖고 간단한 HTML 문서(Start.html)을 만들어 보자.
<html>
<body>
<OBJECT ID = “Start” WIDTH = 300 HEIGHT = 200
classid = “clsid:63C4E7C7-5286-4003-95CF-CB29DE0173D3”>
</OBJECT>
</body>
</html>
그리고 Start.html을 브라우저로 열었을 때 화면3이 나타난다면 일단 성공한 것이다. 필자는
이 화면을 너무 많이 봐서 질릴 정도지만 아직 가야할 길이 머니 좀더 분발하기 바란다.

Cab 파일로 압축하기
앞서 만든 Start.html은 먼저 컨트롤이 시스템에 설치된 경우에만 잘 나타날 것이다.
이 컨트롤을 웹에서도 보게 하려면 좀 더 많은 작업을 거쳐야 한다. 가장 먼저 압축을 한다. 압축형식은 MS에서 제공하는 Cab 파일이면 압축 프로그램은 cabarc.exe가 있다. 이것은 http://msdn.microsoft.com/workshop/management/cab/cabdl.asp 에서

다운받을 수 있다. Cab으로 압축하기 전 Inf파일을 준비해야 하는 데 ocx와 필요한 dll들을 어떻게 시스템에 설치해야 하는지를 브라우저에게 알려주는 정보(Informaion) 파일이다.
간단한 Start.inf 파일을 만들어 보자. 앞서 설명한 mfc dll을 어떻게 사용했느냐에 따라 두가지로 구분해 작성할 수 있을 것이다.
1) MFC dll을 Static으로 사용한 경우
; File name – Start.inf
; INF file for Start.ocx
[version]
signature = “$CHICAGO$”
AdvancedINF = 2.0
[Add.Code]
Start.ocx = Start.ocx
[Start.ocx]
file-win32-x86 = thiscab
FileVersion = 1.0.0.1
clsid = {63C4E7C7-5286-4003-95CF-CB29DE0173D3}
RegistedServer = yes
2) MFC dll을 Share로 사용한 경우
[version]
signature=”$CHICAGO$”
AdvancedINF=2.0
[Add.Code]
Start.ocx=Start.ocx
msvcrt.dll=mfc42.dll
olepro32.dll=olepro32.dll
[start.ocx]
file-win32-x86=thiscab
clsid={63C4E7C7-5286-4003-95CF-CB29DE0173D3}
FileVersion=1.0.0.1
RegisterServer=yes
[msvcrt.dll]
FileVersion=4.20.0.6164
hook=mfc42installer
[mfc42.dll]
FileVersion=4.2.0.6256
hook=mfc42installer
[olepro32.dll]
FileVersion=4.2.0.6256
hook=mfc42installer
[mfc42installer]
file-win32-x86=
http://activex.microsoft.com/controls/vc/mfc42.cab
run=%EXTRACT_DIR%\mf42.exe
1번의 경우 배포해야 할 것이 Start.ocx 하나이므로 비교적 간단하다.
그러나 2번의 경우 기본적으로 컨트롤이 사용하는 dll은 msvcrt.dll, mfc42.dll, olepro32.dll인데
이들 dll을 어떻게 설치할지 잘 정의한다. 물론 컨트롤에 따라 자체적으로 dll을 사용하는 경우
이들 dll을 같은 cab 파일안에 넣고 어떻게 설치할지 inf파일에 잘 정의해줘야 한다.
여기서는 세 개의 dll을 mfc42installer 항목에서 설치하도록 정의하는데 mfc42installer 항목을 보면
mfc42.cab을 MS에서 다운받고 이 Cab파일을 푼 폴더에서 설치 프로그램(mfc42.exe)을 실행하도록 정의하고 있다.
이 설치프로그램이 가동된 경우 일부 시스템(2000 이전)은 설치한 후 재가동을 요구하기도 한다. 이러한 재가동률을 최소화하려면 사용하는 비주얼 C++의 버전에 맞는 각 dll의 파일버전 값을 정확히 기술해야 한다. 각 비주얼 C++의 버전별 dll의 버전은 http://supprot.microsoft.com/support/kb/articles/Q167/1/58.ASP 에 잘 기술되어 있다.
이제 Start.inf와 Start.ocx가 준비됐으므로 이것으로 Start.cab를 만들면 된다. 명령은 다음과 같다.
cabarc -s 6144 N Start.cab Start.ocx Start.inf <enter>
여기서 N은 Create를 말하는 옵이다.(new를 의미하는 듯) 그리고 -s 6144는 cab 파일에 인증키를 넣기 위해 6144바이트를 비워두라는 옵션이다. cab 파일을 만들었으므로 앞서 만든 Start.html을 수정해보자.
이때 CODEBASE 속성에 cab 파일명을 적고 이 파일에 들어있는 ocx의 버전을 적어주는 데 Start 프로젝트 리소스의 버전에서 파일과 제품의 버전을 적으면 된다. 이때 주의할 것은 버전의 세부항목이 콤마로 구분되어 있다는 것이다.
<html>
<body>
<OBJECT ID = “Start” WIDTH = 300 HEIGHT = 200
classid = “clsid:63C4E7C7-5286-4003-95CF-CB29DE0173D3”
CODEBASE = “Start.cab#Version=1,0,0,1”>
</OBJECT>
</body>
</html>

이제 Start.html과 Start.cab을 웹서버의 같은 폴더에 올려놓고 IE로 열어보자. 그러면 화면4와 같은 에러메시지를 접하게 될 것이다.



무엇인 문제인가. 문제는 여러분이 작성한 컨트롤(Start.ocx)이 인증돼 있지 않다는 점이다.

코드사인하기
컨트롤을 작성하면 만든 이는 사용자가 이 컨트롤을 다운받을 때 얼마나 안전한지에 대한 보증을 해야 한다. 사용자가 뭘 믿고 모르는 사람이 만든 컨트롤을 자신의 PC에 설치하겠는가.
컨트롤의 인증은 공개키 기반의 인증키로 하게 되는데, 이때 인증기관의 신뢰도가 가장 중요하다. 그래서 대부분 미국 베리사인과 같은 신뢰성 있는 인증기관으로부터 인증서를 받아 자신의 컨트롤을 인증하고 있다. 즉 그렇게 인증을 하면 사용자는 컨트롤이 자신의 pc에 설치될 때 다음과 같은 메시지 “XX 개발사가 만들고 베리사인이 보증한 컨트롤입니다.”를 접하게 된다. 그럼 사용자는 좀더 안심하고 컨트롤을
설치하게 되는 것이다.
베리사인에 인증키를 신청해 키를 받게 되면 MS로부터 인증용 툴
http://digitalid.verigign.com/developer/ms_pick.html 을 다운받아야 한다.

이 툴을 특정 폴더에 풀고 그 폴더에 cabarc.exe, Start.ocx, Start.inf를 넣자. 우리가 인증해야 할 대상은 두 개의 파일인데, 하나는 ocx이고 다른 하나는 중간에 생성되는 cab파일이다. 인증 절차는 다음과 같으며 IE.5.X가 설치된 컴퓨터에서의 인증방법이다.
필자는 이러한 과정의 많은 타이핑을 줄이기 위해 배치파일(Start.bat)을 만들어 사용한다.

SignCode -spc myKey.spc -v myKey.pvk -n Start -i

http://www.myurl.com
-$ commercial -t http://timestamp.verisign.com/scripts/timestamp.dll
Start.ocx <enter>
chktrust -q Start.ocx <enter>
cabarc -s 6144 N Start.cab Start.ocx Start.inf <enter>
SignCode -spc myKey.spc -v myKey.pvk -n Start -i
http://www.myurl.com
-$ commercial -t http://timestamp.verisign.com/scripts/timestamp.dll
Start.cab <enter>
chktrust -q Start.cab <enter>
보안상의 경고메시지를 피하기 위해 우리는 한 가지를 더 해줘야 한다. 그것은 초기화와 스크립트에 대한 안전표시(Safe for Scripting/Initialization)로 이 컨트롤을 스크립트 엔진에서 사용해도 안전하다는 표시다.
참고) 인증서 신청과 필자의 실수담
베리사인으로부터 인증서를 받는 절차를 알아보자. 국내 업체가 베리사인으로부터 인증서를 받으려면 먼전 DUNS 넘버를 받는 것이 좋다. 이 번호는 각각의 회사에 대한 국제적 공증번호이다. 베리사인이 특정회사를 위해 인증키를 배포할 때 그 회사가 실제로 존재하고 또 어떤 회사인지 파악해야 보증을 할 수 있는데, 이때 DUNS넘버는 그 과정을 대신하게 된다. 만약 DUNS 넘버가 없다면 여러분은 자신의 회사를 소개하는 영문자료를 베리사인에 제출해야 한다. DUNS 넘버는 D&B 한국지사에서 발행하고 있으면 무료와 유료(약 5만원)가 있다. 유료인 경우 DUNS 넘버에 대한 공식문서를 받을 수 있으므로 나중에 베리사인으로부터 인증서를 좀더 빨리 받으려고 할 때 이 공식문서를 사용할 수 있어 유리하다. DUNS 넘버를 만드려면 4일에서 늦으면 일주일 정도 소요된다. 그러나 DUNS 넘버를 베리사인이 확인하는 데까지 한달이라는 시간이 더 걸린다. 이때 좀더 빨리 진행하기 위해서는 DUNS 넘버에 대한 공식문서를 베리사인에게 팩스로 보내준다. DUNS 넘버를 받고 베리사인에게 IE용 인증키를 신청하면 몇 가지 절차를 거친 뒤 일주일에서 보통 보름정도 뒤에 개인키(myKey.pvk)와 공개키(myKey.spc) 한 쌍을 받게 된다.
필자는 가끔 프로젝트를 하면서 고객 회사의 인증키를 대신 신청해주곤 하는데 한번은 베리사인의 신청서를 작성하다가 첫부분에 Developer ID를 쓰라고 해서 필자가 개발자라는 생각에 고객의 회사가 아닌 필자의 회사를 적었다. 나중에 인증키를 받고 보니, Common Name(인증키의 ID)이 고객회사로 돼야 하는데 그만 본인 회사로 돼 있는것이 아닌가. 그래서 취소하고 재발급받느라 고생한 적이 있다. 이처럼 인증서를 대리신청할 경우에는 주의를 기울여야 한다.
초기화와 스크립트에 대한 안전표시
앞서 여러분이 했던 코드사인은 다운로드를 안전하게 수행하기 위한 절차였다.
MFC는 기본적으로 위자드에 의해 생성된 컨트롤에 스크립팅과 컨트롤 초기화를 위한 안전처리가 돼 있다. 따라서 IE에서 보안이 보통 이상인 경우 컨트롤이 안전하지 않다는 메시지가 출력된다. 이것을 해결하는 방법은 두 가지로, 하나는 IObjectSafety 인터페이스를 구현하는 것이고 다른 하나는 컨트롤의 DllRegisterServer 함수안에 레지스트리에 안전표시를 하도록 하는 것이다. 여기서는 두 번째 방법을 사용하겠다.
MS는 이를 위해 두개의 함수를 별도로 제공하고 잇다. 리스트1,2의 두 파일을 만들어 프로젝트에 추가하자. 그런 다음 우리 프로젝트의 Start.cpp에 #include “CatHelp.h”를 추가하고 두 개의 GUID를 추가한다.
const CATID CATID_SafeForScripting =
{0x7dd9501, 0x9882, 0x11cf, {0x9f, 0xa9, 0x00, 0xaa, 0x00, ox6c, 0x42, 0xc4}};
const CATID CATID_SafeForInitializing =
{0x7dd9501, 0x9882, 0x11cf, {0x9f, 0xa9, 0x00, 0xaa, 0x00, ox6c, 0x42, 0xc4}};
다음 우리 컨트롤의 클래스 ID를 다음과 같은 형식으로 정의하자. 이때 _ctlid 값은 CLSID와 같아야 한다.
const GUID CDECL BASED_CODE _ctrid =
{{0x63C4E7C7, 0x5286, 0x4003, {0x95, 0xcf, 0xcb, 0x29, 0xde, 0x01, 0x73, oxd3}}; // clsid: 63C4E7C7-5286-4003-95CF-CB29DE0173D3
마지막으로 Start.cpp의 DllRegisterServer 함수를 다음과 같이 수정하면 된다.
STDAPI DllRegisterServer()
{
AFX_MANAGE_STATE(_afxModuleAddrThis);
if(!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
return ResultFromScode(SELFREG_R_TYPELIB);
if(!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
return ResultFormScode(SELFREG_E_CLASS);
if(FAILED (CreateComponentCategory(
CATID_SafeForScripting,
L”Controls that are safely scriptable”)))
return ResultFromScode(SELFREG_E_CLASS);
if(FAILED (CreateComponentCategory(
CATID_SafeForInitializing,
L”Controls that are safely Initializable from persistent data”)))
return ResultFromScode(SELFREG_E_CLASS);
if(FAILED( RegisterCLSIDInCategory(
_ctlid, CATID_SafeForScripting)))
return ResultFromScode(SELFREG_E_CLASS);
if(FAILED( RegisterCLSIDInCategory(
_ctlid, CATID_SafeForInitializing)))
return ResultFromScode(SELFREG_E_CLASS);
return NOERROR;
}
이렇게 하면 컨트롤이 등록시 레지스트리에 이 컨트롤은 안전하다는 기록을 남기므로 IE는 더 이상 이를 문제삼지 않게 된다. 우리는 DllRegisterServer를 수정해 레지스트리에 몇 개의 키를 넣도록 수정했지만 DllUnregisterServer 함수에서 이를 제거하지는 않는다.
자, Start컨트롤을 컴파일하고 코드사인하고 Cab으로 압축해 이를 웹서버에 올려 브라우저로 확인해 보자. 그럼 이제 안전하게 다운로드된 컨트롤을 볼 수 있을 것이다. 지금까지 완전한 Hello World 컨트롤을 제작했다고 생각하면 된다. 모든 것이 그렇듯이 Hello World를 얼마나 빨리 만드느냐가 프로젝트의 수행 시간을 좌우하게 된다. 그러나 이것만으로는 아직 시작에 불과하다.

컨트롤과 스크립트와의 대화
이 액티브X 컨트롤을 가지고 웹 상에서의 HTML 문서에서 어떤 것들이 가능할까. 또 어떻게 활용하는 것이 좋은 방안인지 생각해 보자.  IE에서 하나의 HTML은 여러가지 구성요소 그림1을 갖게 된다.

이들 각 구성요소간의 통신은 반드시 필요한 부분이다. 이들 컨트롤과 스크립트 엔진이 어떻게 서로 대화하는지 알아보자. 컨트롤은 자신을 노출하는 방법으로 프로퍼티, 메쏘드, 이벤트 세가지 방법을 제공하고 있다. 이들을 만드는 방법은 마소 과월호나 일반 서적에서 쉽게 찾아 볼 수 있다. Start 컨트롤에 다음의 프로퍼티, 메쏘드, 이벤트를 만들어보자.
프로퍼티 : CString형 MyName; <- 컨트롤의 이름
메쏘드 : BOOL CallMeIn10Seconds(); <- 10초후에 불러줄 것을 요구하는 메쏘드
이벤트 : void DidYouCallMe(); <- 발생되는 이벤트
프로퍼티
프로퍼티는 말 그대로 컨트롤의 특성을 지정하는 것으로 프로퍼티의 값을 설정하는 방법은 <OBJECT> 태그안에서 <PARAM> 태그를
이용하는 방법과 자바스크립트를 이용하는 방법이 있다. 다음 예를 보자.
1) <PARAM> 태그
<OBJECT ID = “Start” WIDTH = 300 HEIGHT = 200
classid = “clsid:63C4E7C7-5286-4003-95CF-CB29DE0173D3”>
<PARAM Name = “MyName” VALUE = “김범수”>
</OBJECT>
2) javascript
<Script>
Document.Start.MyName = “김범수”;
</Script>
컨트롤을 만들고 가장 많이 실수하는 부분이 DoPropExchange(CPropExchange * pPX) 함수 속성과 StartCtrl 클래스의 멤버변수와 데이터를 교환시켜 주는 부분을 잊는 경우이다. <PARAM> 태그를 사용해 초기값으로 지정한 경우 이 값은 단지 속성 영역에만 기록될 뿐 StartCtrl 클래스의 멤버변수에 들어오지 않는다. 멤버변수까지 이 값이 들어오게 하기 위해서는 개발자가 직접 다음과 같은 코드를 넣어주어야 한다.
void CStartCtrl::DoPropExchange(CProExchange * pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);
PX_String(pPX, _T(“MyName”), m_strMyName,””);
}
메쏘드
메쏘드는 스크립트가 컨트롤에 무엇인가를 시키고자 할 때 사용한다. 따라서 우리가 만든
CallmeIn10Seconds()를 스크립트를 이용해 호출해 보자.
<Script>
Document.Start.CallMeIn10Seconds();
</Script>
이벤트
이벤트는 메쏘드와 반대의 개념이다. 이것은 컨트롤이 무엇인가 특별한 일이 생겼음을 스크립트 엔진에 알리는 방법이다.
이벤트는 IE에서 아래와 같은 방법으로 사용할 수 있다.
<script for=Start event=DidYouCallMe() language = “JavaScript”>
alert(document.Start.MyName);
</script>
이 세가지 방법을 사용한 컨트롤과 스크립트를 완성해 보자(리스트3).

/*  위 리스트 3 그림 시작 */
/////////////////////////////////////////////////////////////////////////////
// CStartCtrl::OnDraw – Drawing function

void CStartCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.
pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
pdc->Rectangle(rcBounds);
pdc->TextOut(10,10,”파일럿 콘트롤입니다.”);
}

/////////////////////////////////////////////////////////////////////////////
// CStartCtrl::DoPropExchange – Persistence support
void CStartCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);
// TODO: Call PX_ functions for each persistent custom property.
PX_String(pPX , _T(“MyName”) , m_strMyName, “unknown”);
}
/////////////////////////////////////////////////////////////////////////////
// CStartCtrl::OnResetState – Reset control to default state
void CStartCtrl::OnResetState()
{
COleControl::OnResetState();  // Resets defaults found in DoPropExchange
// TODO: Reset any other control state here.
}
/////////////////////////////////////////////////////////////////////////////
// CStartCtrl::AboutBox – Display an “About” box to the user
void CStartCtrl::AboutBox()
{
CDialog dlgAbout(IDD_ABOUTBOX_START);
dlgAbout.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CStartCtrl message handlers
void CStartCtrl::OnMyNameChanged()
{
// TODO: Add notification handler code
SetModifiedFlag();
}
void CStartCtrl::CallMeIn10Seconds()
{
// TODO: Add your dispatch handler code here
SetTimer(0,10000,NULL); //10초뒤에 시간 발생
}
void CStartCtrl::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
KillTimer(0);
FireDidYouCallMe();
COleControl::OnTimer(nIDEvent);
}
/* 리스트3 내용 끝 */
그리고 Start.html(리스트4 아래 텍스트 타이핑)를 수정하고
화면 아래의 링크를 클릭하면 10초후에 화면5와 같은 재미있는 메시지를 보게 될 것이다.
<html>
<head>
<script for=Start event=DidYouCallme() language=”JavaScript”>
<!–
alert(“WhyDidYouCallME(“+document.Start.MyName+”)?”);
//–>
</script>
</head>
<body>
<OBJECT ID = “Start” WIDTH = 300 HEIGHT = 200
classid = “clsid:63C4E7C7-5286-4003-95CF-CB29DE0173D3”>
<PARAM Name = “MyName” VALUE = “KBS”>
</OBJECT>
<br>
<a herf=”JavaScript:document.Start.CallMeIn10Seconds()”>Please Call Me In 10 Seconds</a>
</body>
</html>
————— 위 내용 리스트4 —————————–

 

“액티브X 생성에서 배포까지”의 437개의 댓글

  1. Hello! I could have sworn I’ve been to this website before but after
    checking through some of the post I realized it’s new to me.

    Anyhow, I’m definitely delighted I found it and I’ll be book-marking and checking back often!

  2. I have been surfing online more than 3 hours today, yet I never found any interesting article like yours.

    It is pretty worth enough for me. In my view, if
    all webmasters and bloggers made good content as you did, the internet will be a lot more useful than ever before.

  3. 핑백: svagroup.org

  4. 핑백: mơ thấy anh em gặp nhau

  5. 핑백: 홀덤사이트

  6. 핑백: mơ thấy người cha đã mất

  7. 핑백: 안전 토토

  8. 핑백: nam mo thay vang

  9. 핑백: mơ rắn cắn đánh đề bao nhiêu

  10. 핑백: AR-12 Pro

  11. 핑백: Panzer Arms BP-12 Bullpup Shotgun 12ga

  12. 핑백: mo cho chet

  13. 핑백: game hacks

  14. I just want to mention I am just very new to blogging and definitely liked this web site. Very likely I’m planning to bookmark your website . You absolutely have awesome writings. Regards for sharing with us your website.

  15. 핑백: tennis truc tuyen

  16. 핑백: cvv shop

  17. You actually make it seem really easy along with your presentation but I in finding this topic to be really one thing that I feel I might never understand. It kind of feels too complicated and extremely large for me. I am looking forward on your subsequent post, I¡¦ll attempt to get the hold of it!

  18. Hello! I could have sworn I’ve been to this site before but after browsing through some of the post I realized it’s new to me. Anyhow, I’m definitely happy I found it and I’ll be book-marking and checking back often!

  19. I would like to thnkx for the efforts you have put in writing this blog. I’m hoping the same high-grade blog post from you in the upcoming also. In fact your creative writing skills has encouraged me to get my own web site now. Actually the blogging is spreading its wings fast. Your write up is a good example of it.

  20. There are some attention-grabbing time limits on this article but I don’t know if I see all of them middle to heart. There may be some validity however I’ll take hold opinion until I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as well

  21. I simply want to tell you that I am all new to blogging and honestly loved your page. Very likely I’m going to bookmark your website . You definitely come with exceptional articles and reviews. Kudos for revealing your website.

  22. An outstanding share! I have just forwarded this onto a colleague who was conducting a little homework on this. And he actually ordered me dinner because I stumbled upon it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanx for spending some time to discuss this issue here on your website.

  23. Have you ever thought about adding a little bit more than just your articles? I mean, what you say is important and everything. Nevertheless think of if you added some great visuals or videos to give your posts more, “pop”! Your content is excellent but with images and videos, this blog could definitely be one of the very best in its field. Wonderful blog!

  24. Hi there! This blog post could not be written any better! Reading through this article reminds me of my previous roommate! He always kept talking about this. I most certainly will send this post to him. Pretty sure he’ll have a very good read. I appreciate you for sharing!

  25. 핑백: mơ thấy quả bưởi đánh con gì

  26. Oh my goodness! a fantastic post dude. Many thanks Even so We are experiencing problem with ur rss . Do not know why Cannot sign up for it. Could there be everyone getting identical rss difficulty? Anyone who knows kindly respond. Thnkx

  27. I simply want to mention I am just newbie to blogging and actually enjoyed this web-site. Very likely I’m want to bookmark your blog post . You actually come with awesome posts. Thanks for sharing with us your web page.

  28. I don’t know whether it’s just me or if everybody else experiencing issues with your blog. It looks like some of the text within your posts are running off the screen. Can somebody else please comment and let me know if this is happening to them too? This might be a issue with my internet browser because I’ve had this happen before. Appreciate it

  29. I챠m amazed, I have to admit. Rarely do I come across a blog that챠s both educative and amusing, and let me tell you, you have hit the nail on the head. The issue is something that too few people are speaking intelligently about. Now i’m very happy I found this in my search for something concerning this.

  30. My wife and i got quite delighted Raymond managed to conclude his basic research through the ideas he came across from your very own web pages. It’s not at all simplistic just to choose to be giving away ideas which usually some others could have been trying to sell. We really see we have got the blog owner to be grateful to for that. These illustrations you made, the simple web site navigation, the friendships you will assist to instill – it’s most powerful, and it’s leading our son and our family understand this issue is excellent, and that is very indispensable. Many thanks for the whole thing!

  31. I know this if off topic but I’m looking into starting my own weblog and was curious what all is needed to get set up? I’m assuming having a blog like yours would cost a pretty penny? I’m not very internet smart so I’m not 100 sure. Any recommendations or advice would be greatly appreciated. Cheers

  32. Hi there, just changed into alert to your blog thru Google, and found that it is really informative. I’m going to watch out for brussels. I’ll be grateful if you proceed this in future. Many people will probably be benefited from your writing. Cheers!

  33. I was pretty pleased to find this website. I want to to thank you for ones time for this wonderful read!! I definitely really liked every part of it and i also have you book-marked to look at new information on your website.

  34. A formidable share, I simply given this onto a colleague who was doing a little bit evaluation on this. And he actually purchased me breakfast because I discovered it for him.. smile. So let me reword that: Thnx for the treat! But yeah Thnkx for spending the time to discuss this, I feel strongly about it and love studying extra on this topic. If doable, as you turn out to be experience, would you thoughts updating your blog with more particulars? It’s highly useful for me. Big thumb up for this blog put up!

  35. With every little thing which seems to be building throughout this area, all your perspectives are generally quite stimulating. Having said that, I beg your pardon, because I do not give credence to your whole suggestion, all be it exciting none the less. It appears to everybody that your comments are not totally rationalized and in fact you are generally yourself not even totally certain of the argument. In any case I did appreciate reading it.

  36. Nice post. I learn something new and challenging on websites I stumbleupon everyday. It’s always interesting to read through content from other authors and use a little something from other web sites.

  37. I do not even know how I ended up here, but I thought this post was good. I do not know who you are but definitely you are going to a famous blogger if you are not already 😉 Cheers!

  38. Hi there very cool web site!! Guy .. Beautiful .. Superb .. I’ll bookmark your website and take the feeds additionally…I’m satisfied to search out a lot of helpful info here in the post, we need work out extra techniques on this regard, thank you for sharing. . . . . .

  39. Woah! I’m really enjoying the template/theme of this site. It’s simple, yet effective. A lot of times it’s very difficult to get that “perfect balance” between user friendliness and visual appeal. I must say you have done a awesome job with this. Additionally, the blog loads super quick for me on Opera. Superb Blog!

  40. Do you have a spam issue on this site; I also am a blogger, and I was curious about your situation; we have created some nice methods and we are looking to exchange solutions with others, be sure to shoot me an email if interested.

  41. I am really loving the theme/design of your web site. Do you ever run into any browser compatibility issues? A number of my blog audience have complained about my site not working correctly in Explorer but looks great in Firefox. Do you have any solutions to help fix this problem?

  42. Hi, i feel that i noticed you visited my weblog so i got here to “return the want”.I’m attempting to find issues to enhance my web site!I suppose its adequate to use some of your ideas!!

  43. My wife and i were so thankful that Peter managed to finish up his research by way of the precious recommendations he received when using the blog. It’s not at all simplistic to simply happen to be offering procedures which other people could have been selling. We really do understand we now have the writer to thank for this. The specific explanations you made, the easy website navigation, the relationships you will help to engender – it’s got everything terrific, and it’s really assisting our son and us know that this topic is enjoyable, which is wonderfully essential. Thank you for all the pieces!

  44. An impressive share! I’ve just forwarded this onto a coworker who has been conducting a little research on this. And he actually ordered me lunch because I discovered it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanks for spending time to talk about this matter here on your website.

  45. Wonderful beat ! I would like to apprentice whilst you amend your website, how can i subscribe for a blog website? The account helped me a acceptable deal. I had been a little bit familiar of this your broadcast provided vibrant transparent concept

  46. Hey there would you mind stating which blog platform you’re using? I’m looking to start my own blog in the near future but I’m having a hard time selecting between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design and style seems different then most blogs and I’m looking for something completely unique. P.S My apologies for being off-topic but I had to ask!

  47. You’re so interesting! I don’t suppose I have read something like that before. So nice to find another person with some unique thoughts on this topic. Seriously.. thanks for starting this up. This website is one thing that’s needed on the web, someone with a little originality!

  48. I must say, as a lot as I enjoyed reading what you had to say, I couldnt help but lose interest after a while. Its as if you had a wonderful grasp on the subject matter, but you forgot to include your readers. Perhaps you should think about this from far more than one angle. Or maybe you shouldnt generalise so considerably. Its better if you think about what others may have to say instead of just going for a gut reaction to the subject. Think about adjusting your own believed process and giving others who may read this the benefit of the doubt.Jobs offered

  49. Hiya, I’m really glad I have found this information. Nowadays bloggers publish just about gossips and net and this is really irritating. A good web site with exciting content, that’s what I need. Thanks for keeping this web site, I’ll be visiting it. Do you do newsletters? Can’t find it.

  50. Hi, I do think this is an excellent website. I stumbledupon it 😉 I’m going to come back yet again since I book marked it. Money and freedom is the best way to change, may you be rich and continue to guide other people.

  51. Superb blog you have here but I was wanting to know if you knew of any user discussion forums that cover the same topics discussed here? I’d really like to be a part of online community where I can get advice from other knowledgeable people that share the same interest. If you have any suggestions, please let me know. Thanks!

  52. Together with every thing which appears to be building throughout this specific subject matter, your opinions happen to be very refreshing. Having said that, I am sorry, because I can not give credence to your entire theory, all be it exciting none the less. It seems to me that your opinions are not totally justified and in fact you are yourself not even fully convinced of your assertion. In any case I did appreciate reading it.

  53. There are certainly a whole lot of details like that to take into consideration. That could be a great level to deliver up. I supply the thoughts above as basic inspiration however clearly there are questions like the one you convey up the place a very powerful thing can be working in honest good faith. I don?t know if finest practices have emerged round issues like that, however I’m positive that your job is clearly identified as a fair game. Each girls and boys feel the affect of just a second’s pleasure, for the rest of their lives.

  54. I’m impressed, I have to admit. Seldom do I encounter a blog that’s both educative and entertaining, and let me tell you, you have hit the nail on the head. The issue is something which too few people are speaking intelligently about. Now i’m very happy that I found this during my search for something regarding this.

  55. Right here is the right web site for anyone who would like to find out about this topic. You know a whole lot its almost hard to argue with you (not that I actually would want to횜HaHa). You certainly put a new spin on a topic that’s been discussed for ages. Wonderful stuff, just wonderful!

  56. Awesome blog! Do you have any hints for aspiring writers? I’m hoping to start my own site soon but I’m a little lost on everything. Would you propose starting with a free platform like WordPress or go for a paid option? There are so many options out there that I’m totally overwhelmed .. Any ideas? Cheers!

  57. Thank you for your whole efforts on this web site. My daughter takes pleasure in making time for investigation and it’s easy to see why. I know all of the compelling medium you deliver both interesting and useful guidelines on the blog and even encourage participation from some others on this topic while our daughter is certainly discovering a lot. Enjoy the remaining portion of the new year. Your conducting a wonderful job.

  58. Next time I read a blog, Hopefully it does not fail me as much as this one. After all, I know it was my choice to read through, however I really thought you would have something interesting to talk about. All I hear is a bunch of moaning about something you can fix if you weren’t too busy searching for attention.

  59. I cherished as much as you’ll receive performed proper here. The cartoon is tasteful, your authored material stylish. nonetheless, you command get bought an edginess over that you would like be delivering the following. unwell indisputably come further previously once more as exactly the similar nearly very ceaselessly inside of case you defend this increase.

  60. Greetings from Colorado! I’m bored to tears at work so I decided to browse your blog on my iphone during lunch break. I really like the info you provide here and can’t wait to take a look when I get home. I’m amazed at how quick your blog loaded on my mobile .. I’m not even using WIFI, just 3G .. Anyways, very good blog!

  61. hey there and thank you for your info – I have definitely picked up something new from right here. I did however expertise some technical points using this website, as I experienced to reload the website a lot of times previous to I could get it to load properly. I had been wondering if your hosting is OK? Not that I’m complaining, but sluggish loading instances times will sometimes affect your placement in google and can damage your high-quality score if ads and marketing with Adwords. Well I’m adding this RSS to my e-mail and can look out for a lot more of your respective fascinating content. Make sure you update this again soon..

  62. Its such as you learn my mind! You appear to grasp so much about this, such as you wrote the ebook in it or something. I feel that you could do with some p.c. to drive the message house a little bit, however other than that, that is great blog. A fantastic read. I will certainly be back.

  63. Thanks for sharing superb informations. Your web site is so cool. I am impressed by the details that you’ve on this blog. It reveals how nicely you understand this subject. Bookmarked this web page, will come back for extra articles. You, my friend, ROCK! I found simply the information I already searched all over the place and just could not come across. What a perfect web site.

  64. You really make it appear really easy together with your presentation however I to find this matter to be really something that I think I’d by no means understand. It kind of feels too complicated and very huge for me. I’m having a look ahead in your subsequent submit, I’ll attempt to get the hang of it!

  65. hey there and thanks on your info – I have definitely picked up something new from proper here. I did then again expertise some technical issues using this web site, since I experienced to reload the site many occasions previous to I could get it to load correctly. I had been pondering in case your hosting is OK? No longer that I am complaining, however slow loading instances occasions will very frequently impact your placement in google and can damage your quality score if ads and ***********|advertising|advertising|advertising and *********** with Adwords. Anyway I’m including this RSS to my email and can look out for much more of your respective intriguing content. Make sure you replace this again soon..

  66. I intended to put you that little observation so as to give many thanks over again with the spectacular ideas you’ve provided in this article. It was simply tremendously open-handed with you to make easily all a lot of folks would have marketed as an ebook to get some dough on their own, notably considering that you could possibly have tried it if you ever decided. Those concepts additionally worked like the great way to know that some people have a similar fervor really like my very own to grasp a whole lot more with regards to this issue. I believe there are lots of more pleasurable periods up front for those who discover your website.

  67. Thank you for sharing excellent informations. Your web site is so cool. I’m impressed by the details that you have on this site. It reveals how nicely you understand this subject. Bookmarked this website page, will come back for more articles. You, my pal, ROCK! I found simply the information I already searched everywhere and just could not come across. What a great web-site.

  68. Can I simply say what a reduction to find somebody who really is aware of what theyre speaking about on the internet. You positively know learn how to deliver a difficulty to light and make it important. Extra individuals have to read this and understand this aspect of the story. I cant believe youre no more common since you positively have the gift.

  69. Together with every thing that seems to be developing within this specific area, your opinions are actually rather stimulating. Having said that, I am sorry, because I do not give credence to your entire suggestion, all be it exciting none the less. It seems to everyone that your comments are generally not totally validated and in actuality you are generally yourself not entirely confident of your argument. In any case I did take pleasure in reading through it.

  70. hello there and thank you for your information – I have certainly picked up something new from right here. I did however expertise a few technical points using this website, as I experienced to reload the site many times previous to I could get it to load properly. I had been wondering if your web host is OK? Not that I’m complaining, but sluggish loading instances times will very frequently affect your placement in google and could damage your high-quality score if ads and marketing with Adwords. Anyway I am adding this RSS to my e-mail and can look out for a lot more of your respective exciting content. Ensure that you update this again soon..

  71. Hello there I am so glad I found your blog, I really found you by accident, while I was looking on Yahoo for something else, Anyways I am here now and would just like to say kudos for a remarkable post and a all round interesting blog (I also love the theme/design), I don’t have time to browse it all at the moment but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read more, Please do keep up the excellent job.

  72. Appreciating the hard work you put into your blog and in depth information you offer. It’s great to come across a blog every once in a while that isn’t the same outdated rehashed information. Wonderful read! I’ve saved your site and I’m including your RSS feeds to my Google account.

  73. hello there and thank you for your info – I have definitely picked up anything new from right here. I did however expertise some technical issues using this web site, since I experienced to reload the web site many times previous to I could get it to load properly. I had been wondering if your web hosting is OK? Not that I’m complaining, but sluggish loading instances times will sometimes affect your placement in google and could damage your high quality score if ads and marketing with Adwords. Well I’m adding this RSS to my email and can look out for much more of your respective exciting content. Ensure that you update this again soon..

  74. Good – I should certainly pronounce, impressed with your website. I had no trouble navigating through all tabs as well as related info ended up being truly simple to do to access. I recently found what I hoped for before you know it in the least. Reasonably unusual. Is likely to appreciate it for those who add forums or something, web site theme . a tones way for your client to communicate. Excellent task..

  75. Hiya, I’m really glad I have found this information. Nowadays bloggers publish just about gossips and internet and this is actually frustrating. A good site with interesting content, that’s what I need. Thanks for keeping this site, I’ll be visiting it. Do you do newsletters? Can not find it.

  76. Thank you for sharing excellent informations. Your web-site is very cool. I am impressed by the details that you’ve on this site. It reveals how nicely you understand this subject. Bookmarked this web page, will come back for more articles. You, my friend, ROCK! I found simply the info I already searched everywhere and simply couldn’t come across. What an ideal website.

  77. Please let me know if you’re looking for a article writer for your weblog. You have some really great posts and I feel I would be a good asset. If you ever want to take some of the load off, I’d really like to write some articles for your blog in exchange for a link back to mine. Please shoot me an e-mail if interested. Regards!

  78. There are some interesting points in time in this write-up but I don?t understand if I see all of them facility to heart. There is some credibility however I will certainly take hold viewpoint up until I check out it further. Great write-up, thanks as well as we want a lot more! Included in FeedBurner as well

  79. Good – I should certainly pronounce, impressed with your web site. I had no trouble navigating through all the tabs and related information ended up being truly simple to do to access. I recently found what I hoped for before you know it at all. Reasonably unusual. Is likely to appreciate it for those who add forums or something, website theme . a tones way for your client to communicate. Nice task..

  80. Very good blog! Do you have any suggestions for aspiring writers? I’m planning to start my own website soon but I’m a little lost on everything. Would you advise starting with a free platform like WordPress or go for a paid option? There are so many options out there that I’m totally overwhelmed .. Any ideas? Many thanks!

  81. You really make it seem so easy with your presentation however I to find this topic to be actually something that I believe I would by no means understand. It sort of feels too complicated and extremely huge for me. I’m looking forward for your subsequent submit, I’ll try to get the hold of it!

  82. Go to Pure CBD Selection for the best pure cbd oil. You can buy pure cbd oil that is full spectrum or broad spectrum. Make sure to sign up for there newsletter to receive a free coupon code.

  83. My partner and I absolutely love your blog and find almost all of your post’s to be just what I’m looking for. Does one offer guest writers to write content for yourself? I wouldn’t mind writing a post or elaborating on a few of the subjects you write about here. Again, awesome web log!

  84. There are definitely lots of particulars like that to take into consideration. That may be a great point to convey up. I offer the ideas above as normal inspiration but clearly there are questions just like the one you carry up the place an important thing will probably be working in sincere good faith. I don?t know if finest practices have emerged around things like that, but I’m certain that your job is clearly identified as a good game. Both girls and boys feel the influence of just a moment’s pleasure, for the remainder of their lives.

  85. Great – I should definitely pronounce, impressed with your website. I had no trouble navigating through all the tabs as well as related information ended up being truly simple to do to access. I recently found what I hoped for before you know it at all. Reasonably unusual. Is likely to appreciate it for those who add forums or something, website theme . a tones way for your client to communicate. Excellent task..

  86. After examine just a few of the blog posts in your website now, and I really like your approach of blogging. I bookmarked it to my bookmark web site record and will likely be checking back soon. Pls try my site as nicely and let me know what you think.

  87. Good post. I learn something tougher on different blogs everyday. It will all the time be stimulating to read content material from different writers and apply a little bit one thing from their store. I’d desire to make use of some with the content on my weblog whether or not you don’t mind. Natually I’ll provide you with a link in your internet blog. Thanks for sharing.

  88. You actually make it seem so easy together with your presentation but I find this matter to be really something that I feel I would by no means understand. It seems too complicated and extremely broad for me. I’m taking a look forward in your next post, I will attempt to get the dangle of it!

  89. Right here is the perfect blog for anyone who wishes to find out about this topic. You know a whole lot its almost hard to argue with you (not that I personally will need to…HaHa). You certainly put a new spin on a topic which has been written about for years. Excellent stuff, just excellent!

  90. Hi, I do think this is a great web site. I stumbledupon it 😉 I’m going to come back yet again since i have book marked it. Money and freedom is the best way to change, may you be rich and continue to guide other people.

  91. We’re a group of volunteers and starting a new scheme in our community. Your website provided us with valuable information to work on. You’ve done a formidable job and our whole community will be grateful to you.|

  92. I have to thank you for the efforts you have put in penning this site. I really hope to view the same high-grade blog posts by you in the future as well. In truth, your creative writing abilities has encouraged me to get my own blog now 😉

  93. I do not even understand how I finished up here, however I believed this submit was once great. I don’t recognise who you are but definitely you are going to a famous blogger if you are not already. Cheers!|

  94. There are some intriguing moments in this post yet I don?t know if I see all of them facility to heart. There is some credibility yet I will certainly take hold viewpoint till I explore it better. Excellent short article, thanks and also we desire a lot more! Contributed to FeedBurner as well

  95. Can I simply just say what a comfort to find someone who really understands what they’re discussing on the internet. You definitely know how to bring an issue to light and make it important. A lot more people need to look at this and understand this side of the story. It’s surprising you are not more popular given that you certainly possess the gift.

  96. The details you have given is motivating. I would certainly have assumed it would be far more challenging to comprehend. You have actually taken care of to give a great deal of information as well as I value the initiative you have actually taken into your study. I make certain that agree with me. Thanks.

  97. I’m really inspired together with your writing abilities as smartly as with the layout for your blog. Is this a paid subject or did you modify it your self? Anyway stay up the nice quality writing, it’s uncommon to peer a nice blog like this one these days..

  98. Hi there are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and create my own. Do you require any html coding expertise to make your own blog? Any help would be greatly appreciated!

  99. There are some fascinating points in this write-up yet I don?t know if I see every one of them facility to heart. There is some legitimacy but I will hold point of view up until I look into it better. Great write-up, thanks as well as we desire more! Added to FeedBurner also

  100. Hi there would you mind letting me know which webhost you’re utilizing? I’ve loaded your blog in 3 different internet browsers and I must say this blog loads a lot quicker then most. Can you recommend a good hosting provider at a reasonable price? Thank you, I appreciate it!|

  101. I am curious to find out what blog system you have been using? I’m experiencing some small security issues with my latest website and I’d like to find something more risk-free. Do you have any solutions?|

  102. Hmm it looks like your website ate my first comment (it was super long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog blogger but I’m still new to the whole thing. Do you have any points for inexperienced blog writers? I’d genuinely appreciate it.|

  103. When I originally commented I clicked the -Notify me when brand-new remarks are added- checkbox and also currently each time a comment is added I obtain 4 e-mails with the exact same remark. Is there any way you can remove me from that solution? Thanks!

  104. May I simply say what a comfort to uncover someone who really knows what they are talking about on the net. You definitely understand how to bring a problem to light and make it important. A lot more people should check this out and understand this side of the story. It’s surprising you’re not more popular since you certainly have the gift.

  105. An outstanding share! I have just forwarded this onto a friend who has been conducting a little research on this. And he actually bought me lunch because I found it for him… lol. So allow me to reword this…. Thanks for the meal!! But yeah, thanx for spending time to talk about this issue here on your web site.

  106. Do you have a spam problem on this blog; I also am a blogger, and I was wanting to know your situation; we have created some nice methods and we are looking to swap techniques with other folks, be sure to shoot me an email if interested.|

  107. Howdy would you mind sharing which blog platform you’re working with? I’m going to start my own blog in the near future but I’m having a tough time deciding between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I’m looking for something unique. P.S Sorry for getting off-topic but I had to ask!

  108. Hello! This is kind of off topic but I need some help from an established blog. Is it tough to set up your own blog? I’m not very techincal but I can figure things out pretty fast. I’m thinking about making my own but I’m not sure where to start. Do you have any tips or suggestions? Thank you

  109. Howdy! I know this is kinda off topic but I was wondering which blog platform are you using for this site? I’m getting sick and tired of WordPress because I’ve had issues with hackers and I’m looking at options for another platform. I would be awesome if you could point me in the direction of a good platform.

  110. I truly love your site.. Excellent colors & theme. Did you create this web site yourself? Please reply back as I’m wanting to create my very own blog and want to find out where you got this from or what the theme is called. Kudos!

  111. There are absolutely a lot of information like that to think about. That is a fantastic indicate bring up. I provide the thoughts over as general motivation however plainly there are questions like the one you raise where one of the most vital thing will certainly be working in honest good faith. I don?t recognize if ideal methods have actually arised around points like that, yet I make certain that your work is clearly identified as a fair game. Both children and also girls feel the impact of just a moment?s pleasure, for the rest of their lives.

  112. Woah! I’m really loving the template/theme of this site. It’s simple, yet effective. A lot of times it’s challenging to get that “perfect balance” between superb usability and appearance. I must say you’ve done a awesome job with this. In addition, the blog loads super quick for me on Firefox. Outstanding Blog!

  113. Hello, i think that i noticed you visited my site thus i got here to “return the desire”.I’m attempting to in finding issues to improve my website!I suppose its good enough to make use of a few of your ideas!!

  114. Thanks for revealing your ideas. I might also like to express that video games have been at any time evolving. Technology advances and innovative developments have made it easier to create realistic and active games. These entertainment games were not that sensible when the real concept was being used. Just like other kinds of technological innovation, video games as well have had to advance via many ages. This is testimony towards fast growth of video games.

  115. I am without words. This can be a superb blog site and extremely participating also. Fantastic works of art! That is not in fact a lot originating from a good newbie article writer much like me, nonetheless it’s all I may merely point out following diving in your content. Good sentence structure as well as language. No more just like some other sites. A person actually know very well what you?re talking about too. Lots that you just helped me want to explore much more. The blog site has turned into a stepping-stone for me personally, my friend.

  116. My programmer is trying to convince me to move to .net from PHP. I have always disliked the idea because of the expenses. But he’s tryiong none the less. I’ve been using Movable-type on numerous websites for about a year and am concerned about switching to another platform. I have heard great things about blogengine.net. Is there a way I can import all my wordpress content into it? Any kind of help would be really appreciated!|

  117. Youre so great! I do not suppose Ive read anything like this prior to. So great to find someone with some initial thoughts on this subject. realy thank you for starting this up. this site is something that is needed on the web, someone with a little creativity. useful work for bringing something new to the net!

  118. Whats up this is somewhat of off topic but I was wondering if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding skills so I wanted to get guidance from someone with experience. Any help would be greatly appreciated!|

  119. It’s appropriate time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I wish to suggest you some interesting things or advice. Maybe you can write next articles referring to this article. I want to read more things about it!

  120. Thanks for helping me to attain new thoughts about computer systems. I also contain the belief that one of the best ways to maintain your laptop in excellent condition is by using a hard plastic-type material case, as well as shell, that will fit over the top of the computer. A majority of these protective gear are usually model specific since they are manufactured to fit perfectly across the natural outer shell. You can buy these directly from the owner, or from third party sources if they are available for your notebook computer, however not all laptop can have a covering on the market. Again, thanks for your ideas.

  121. Many thanks for spending some time to talk about this, I feel strongly about it and love learning more about this topic. If at all, while you gain expertise, can you mind updating your website with extra information? It’s very great for me.

  122. This topic is one that I discover particularly fascinating. I am extremely pleased that I uncovered your site. Your perspective on it is remarkable to me. Different from my own thoughts, yet I entirely concur with you.

  123. I absolutely love your site.. Great colors & theme. Did you build this website yourself? Please reply back as I’m hoping to create my own personal blog and would like to learn where you got this from or just what the theme is named. Appreciate it.

  124. There are certainly a number of particulars like that to take into consideration. That is a great level to convey up. I supply the thoughts above as general inspiration however clearly there are questions just like the one you carry up the place a very powerful factor can be working in trustworthy good faith. I don?t know if best practices have emerged around things like that, but I’m positive that your job is clearly recognized as a good game. Each boys and girls really feel the affect of just a moment’s pleasure, for the rest of their lives.

  125. You’re so cool! I don’t suppose I have read through anything like this before. So good to find somebody with a few genuine thoughts on this subject. Seriously.. thanks for starting this up. This website is one thing that is required on the internet, someone with some originality.

  126. Howdy, I think your site may be having browser compatibility issues. Whenever I take a look at your web site in Safari, it looks fine however when opening in I.E., it has some overlapping issues. I just wanted to give you a quick heads up! Apart from that, excellent site!

  127. I discovered this message really fascinating. I loved reading your point of view on it. I understand that will certainly enjoy it as well. I am going to share it with a few of my buddies. I would certainly like to see even more articles from you on this subject, please?

  128. Thanks for your marvelous posting! I certainly enjoyed reading it, you’re a great author.I will remember to bookmark your blog and will eventually come back down the road. I want to encourage that you continue your great job, have a nice holiday weekend!|

  129. Hi, i read your blog from time to time and i own a similar one and i was just curious if you get a lot of spam responses? If so how do you reduce it, any plugin or anything you can suggest? I get so much lately it’s driving me insane so any assistance is very much appreciated.|

  130. I seriously love your site.. Very nice colors & theme. Did you make this website yourself? Please reply back as I’m wanting to create my very own website and would like to find out where you got this from or exactly what the theme is called. Thanks!

  131. I’m impressed, I must say. Seldom do I come across a blog that’s both educative and interesting, and let me tell you, you’ve hit the nail on the head. The issue is an issue that too few folks are speaking intelligently about. Now i’m very happy that I came across this in my hunt for something concerning this.

  132. I enjoy you because of every one of your labor on this web site. Betty really loves working on investigations and it’s really obvious why. Most people notice all of the dynamic means you produce good tips and tricks on this web site and even cause participation from other individuals about this situation plus our own princess is certainly being taught a whole lot. Take advantage of the remaining portion of the year. You’re the one doing a pretty cool job.

  133. My wife and i were glad when Michael managed to conclude his reports using the precious recommendations he made while using the web pages. It is now and again perplexing to simply be freely giving information and facts which often many others may have been trying to sell. And we also remember we need the website owner to be grateful to for that. All of the illustrations you made, the simple website menu, the relationships you will assist to foster – it’s got most exceptional, and it is making our son in addition to our family understand that subject matter is enjoyable, which is particularly fundamental. Thank you for everything!

  134. Thanks for this article. I would also like to say that it can possibly be hard when you are in school and simply starting out to initiate a long credit score. There are many college students who are only trying to make it and have a lengthy or favourable credit history can occasionally be a difficult issue to have.

  135. Wonderful items from you, man. I have remember your stuff prior to and you’re simply too excellent.
    I actually like what you’ve bought here, really like what you are saying and the
    best way in which you are saying it. You’re making it enjoyable and you continue to care for to
    keep it smart. I cant wait to learn much more from you.
    That is really a great website.

  136. I just like the valuable info you provide on your articles. I’ll bookmark your blog and take a look at again here regularly. I am moderately sure I’ll be told a lot of new stuff right here! Good luck for the following!|

  137. Hey There. I discovered your blog the usage of msn. This is an extremely well written article. I’ll make sure to bookmark it and come back to learn extra of your helpful info. Thank you for the post. I will certainly return.|

  138. I intended to send you that very small observation to finally thank you so much yet again with your nice solutions you have shown on this page. It is quite incredibly open-handed of you to grant unreservedly what many people could possibly have distributed as an electronic book to help make some dough for their own end, particularly seeing that you could have tried it if you ever decided. These concepts additionally served to be a easy way to know that other people have the identical fervor really like my own to realize good deal more with respect to this matter. I think there are millions of more pleasurable occasions up front for many who looked over your blog.

  139. Hi! This is kind of off topic but I need some advice from an established blog. Is it tough to set up your own blog? I’m not very techincal but I can figure things out pretty quick. I’m thinking about making my own but I’m not sure where to begin. Do you have any points or suggestions? Cheers|

  140. 핑백: toys

  141. I was extremely pleased to discover this page. I need to to thank you for ones time for this fantastic read!! I definitely liked every little bit of it and I have you saved as a favorite to check out new information in your site.

  142. You can definitely see your enthusiasm within the paintings you write. The world hopes for even more passionate writers like you who are not afraid to say how they believe. Always follow your heart. “We may pass violets looking for roses. We may pass contentment looking for victory.” by Bern Williams.

  143. I’ve been browsing online more than 3 hours today, yet I never discovered any fascinating article like yours. It is beautiful price sufficient for me. Personally, if all web owners and bloggers made excellent content material as you probably did, the net might be much more useful than ever before.

  144. Good site! I truly love how it is easy on my eyes and the data are well written. I am wondering how I might be notified when a new post has been made. I have subscribed to your RSS which must do the trick! Have a great day!

  145. Sweet blog! I found it while browsing on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Many thanks

  146. I was wondering if you ever thought of changing the layout of your website? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or two pictures. Maybe you could space it out better?

  147. I precisely had to thank you so much once more. I am not sure the things I could possibly have gone through without the creative concepts contributed by you directly on that concern. It had been a troublesome dilemma in my position, however , coming across the very expert avenue you managed it forced me to jump over fulfillment. I’m just grateful for this guidance and then believe you know what an amazing job you happen to be providing instructing other individuals by way of your webblog. I know that you’ve never met any of us.

  148. Many thanks for sharing all these wonderful articles. In addition, the best travel and also medical insurance system can often eradicate those concerns that come with journeying abroad. Any medical emergency can quickly become very costly and that’s absolute to quickly set a financial impediment on the family finances. Having in place the best travel insurance program prior to leaving is definitely worth the time and effort. Thanks

  149. A fascinating discussion is definitely worth comment. I think that you ought to write more on this topic, it may not be a taboo matter but generally people don’t discuss such topics. To the next! Best wishes!

  150. I’ve been exploring for a little bit for any high quality articles or blog posts in this sort of house . Exploring in Yahoo I eventually stumbled upon this site. Studying this information So i’m happy to show that I have a very excellent uncanny feeling I came upon just what I needed. I so much unquestionably will make sure to do not overlook this web site and give it a look on a continuing basis.|

  151. I together with my buddies were actually following the best thoughts on the website then instantly developed an awful feeling I never expressed respect to the website owner for those secrets. These men were for this reason glad to learn them and now have absolutely been taking advantage of these things. Appreciation for indeed being indeed considerate and also for utilizing this sort of excellent ideas most people are really desirous to learn about. My very own sincere regret for not expressing appreciation to you earlier.

답글 남기기