IPTV, ‘시장논리와 공정경쟁’ 줄다리기

Source : http://www.zdnet.co.kr/news/network/broadcast/0,39031043,39168426,00.htm

 

비통신사업자의 IPTV 사업 진출은 가능한 것인가? 결론부터 말하자면 ‘가능하다.’ 그러나 그 과정이 결코 순탄하지 않다.

이들이 IPTV 사업을 시작함에 있어 가장 큰 걸림돌은 IPTV 서비스를 제공하기 위한 기반 인프라, 즉 네트워크를 보유하지 못하고 있다는 것이다. 현재 네트워크를 가진 통신사들은 메가TV(KT), 하나TV(하나로텔레콤) 등의 서비스를 내놓고 부푼 마음으로 IPTV 시대의 도래를 기다리는 반면, 다음커뮤니케이션 등 IPTV 사업에 참여하고자 하는 비통신사업자들은 노심초사 ‘IPTV법 시행령’ 결과를 기다리고 있다.

이미 통신사들은 이 사업 준비를 위해 망(네트워크) 투자와 더불어 플랫폼(IPTV 서비스)에 적지않은 비용을 쏟아 부어왔다. 이들에게 망동등접근권을 내세우며 무조건적인 망 개방을 요구하는 것은 시장논리에 맞지 않다.

그러나 시장논리 보다 한발 앞서 생각해 봐야할 점이 있다. 바로 신사업 분야인 IPTV 사업에 기존 통신사의 ‘시장 지배력 전이’ 부분이다. 이러한 부분 때문에 초고속인터넷과 전화 등에서 시장 지배자 위치에 있는 KT가 공격을 받고 있는 것이다.

다음은 오픈IPTV라는 별도 법인을 세워 IPTV 사업을 준비하고 있는 대표적인 비통신 IPTV 사업자이다. 그리고 다음 진영(인터넷 기업들)이 노심초사하는 부분은 바로 망 동등접근권의 보장이다.

■망 동등접근권 보장해야 ‘공정경쟁’ 가능

역시 IPTV 사업을 준비하고 있는 케이블TV사업자들 역시, 다음 진영과 뜻을 같이 하고 있다. 케이블TV사업자는 이미 HFC망을 보유하고 있기 때문에, 굳이 통신사업자에 망중립성을 요구할 필요는 없다. 그러나 망 동등접근권이 보장돼야 공정한 시장경쟁이 가능해 진다는 차원에서 망중립성을 지원하고 있다.

한국케이블TV협회의 김용배 과장은 “통신사업자의 네트워크도 필수설비로 지정해서 누구나 빌려쓸 수 있게 해야 한다. 이를 위한 가장 좋은 방법은 KT IPTV 사업부문의 분리이다”라고 설명했다.

플랫폼과 망 사업 부문을 분리하면, 망 임대사업을 하는 쪽에서는 수익을 내기 위해 여러 사업자에 망을 빌려주게 된다. 이 경우 KT의 ‘IPTV 자회사’ 역시 KT에 망을 빌려서 시장에서 경쟁을 하게 된다. 이와 유사한 사례로 영국의 BT나 일본의 NTT 등의 해외 사례가 존재하기도 한다.

케이블TV사업자들은 IPTV법 제정시, 망 동등접근권이 보장된다면 자신들의 HFC망을 기꺼이 개방하겠다는 입장이다. (단 인터넷 기업이 100여개의 사업자에게 일일이 계약을 해야하는 HFC 망을 선호하지는 않을 것이다.)

■오픈IPTV-다음, 올 7월 시범 사업 추진… 사업권 획득 노려

이와 같은 상황에서 다음 진영의 오픈IPTV는 올 7월에 IPTV 시범사업을 추진할 계획이다. 그들의 로드맵을 보면 올 하반기에 IPTV 상용화가 된다는 전체 하에 시범사업을 한 후 사업권을 획득하겠다는 것이다.

그렇다면 오픈IPTV는 KT가 망을 빌려주지 않는 상황에서 어떻게 시범사업을 할 것인가 궁금해 진다. IPTV 사업을 위해서는 지난 2006년 첫 시범사업 때처럼 수도권 및 일부 지역을 대상으로만 할 수 없다. 한정된 집단을 대상으로 하겠지만, 전국 규모로 실시할 것으로 추측된다.

다음의 최소영 동영상 본부장은 “일단 시범 서비스를 함으로써 사업권 획득에 한발짝 다가서려 한다. 사업권이 없으면 IPTV 사업 자체가 힘들어 진다. KT와의 망 문제를 떠나서 IPTV 서비스를 가능케 하는 자체 기술력으로도 시범 사업이 가능하다”라고 말했다.

계속해서 “IPTV 서비스를 위한 KT의 프리미엄 망 없이 시범사업이 가능하지만, 대체 수단은 아니다. 서비스의 QoS(서비스 품질) 확보를 위해 통신사업자의 망은 반드시 필요하다”라고 설명했다.

대안은 있지만, 어디까지나 ‘IPTV 사업권 획득’이라는 급한 불을 끄기 위한 것이다. 시범사업을 통해 서비스 운영 및 콘텐츠 제공 능력을 입증하겠다는 것이다. 반면, 이로 인해 KT가 ‘망이 없어도 가능하면 한번 해봐라’라는 식의 빌미를 제공하게 될 우려도 있다. 서비스 특성상 QoS 확보가 중요한만큼 프리미엄 망 없이는 원활한 서비스가 불가능하기 때문이다.

■KT, 망 구축은 ‘사업자의 의지’

망중립성이나 시장 지배력 전이에 대한 KT측의 입장은 한결같다. 시장논리에 따라 회사로써 수익을 내기 위한 활동을 하는 것이라는 점이다.

KT의 심주교 상무는 “아직 법 제정도 안된 상황이기 때문에 망동등접근에 대한 입장을 밝힐 단계는 아니다”라면서도 “법이 제정된다 하더라도 KT가 망을 빌려줘야 하는지 혹은 왜 KT만 망을 빌려줘야 하는지 민감한 부분이 많다”라고 설명했다.

현재 IPTV 서비스를 위한 프리미엄 망은 KT만이 구축한 상태이며, 하나로텔레콤이나 LG파워콤 역시 이를 계획하고 있는 것으로 알려져 있다.

또 심상무는 “우리는 IPTV 사업을 위해 투자를 해왔다. 하나로나 파워콤 역시 이를 위한 망 구축을 준비중인 것으로 안다”며 “그들(다음 진영)에게 망 사용에 대한 정식 제안을 받은 적이 없다. 망 구축은 어디까지나 사업자의 의지로 투자를 하는 것이고 그에 대한 권리는 자연스러운 것이다”라고 말했다.

현재 방송통신위원회는 IPTV 시행령을 최대한 빠르게 처리해 올해 안에 법 제정을 계획하고 있다. 현재까지 알려진 바에 의하면, 시행령은 제한된 망 동등접근과 망 이용대가 산정 규정을 사업자간 자율 결정 방향으로 가고 있다. 시장 논리에는 맞지만, 국가 기간망이라는 점에서, 정부 정책이 공정 경쟁에 대한 좀더 폭 넓은 이해가 필요하다. @

 

ipv6가 활성화되면, iptv 정도야 케이블처럼 나올텐데. dmb처럼..

각 가정 무선통신이 자유로워진다면.. 좋겠다..

이통3사 패킷요금이 싫어요.

Tech News에 게시됨. 3 Comments »

노키아, 최신 휴대폰 3종 발표

Source : http://www.zdnet.co.kr/news/network/mobile/0,39031089,39168387,00.htm

 

노키아가 28일(현지시간) 새로운 휴대 단말 3종 ‘노키아 6600 폴드’ ‘노키아 6600 슬라이드’ ‘노키아 3600 슬라이드’를 발표했다. 모두 ‘세련된 디자인과 최신 기능’이 콘셉트로, 오는 3분기에 출하 예정이다.

노키아 6600 시리즈 2기종은 표면을 가볍게 두드리면 현재 시간이나 새로 수신한 메시지 표시, 벨소리 끄기, 수신 거부 등의 다양한 기능이 가능하다.

clip_image002

‘노키아 6600 폴드’는 2.13인치 OLED를 탑재한 접이식(폴더형) 모델이다. 닫은 상태로 커버를 가볍게 두 번 두드리면 커버 아랫부분 액정에 시간이나 수신 메시지, 부재중전화 등의 정보가 표시된다.

또 2회 두드리는 것만으로 벨소리를 무음으로 하거나 걸려온 전화를 수신 거부하는 것도 가능하다. 200만화소 카메라와 블루투스 기능을 탑재했으며 가격은 275유로(한화 43만원).

clip_image004

‘노키아 6600 슬라이드’는 6600 폴드처럼 2회 두드리면 반응하는 기능부를 갖췄다. 2.2인치 QVGA 디스플레이, 320만화소의 자동초점 카메라를 탑재했다.

옵션으로 GPS 모듈을 붙이면 탑재된 ‘노키아 맵스’와 더불어 내비게이션도 이용할 수 있다. 가격은 250유로(한화 39만원).

clip_image005

‘노키아 3600 슬라이드’는 노키아 제품 중 처음으로 소음 축소 기능을 탑재했다. 음악 재생기와 320만화소의 자동초점 카메라를 갖췄다.

TV에 접속해 사진이나 동영상을 텔레비전 화면으로도 볼 수 있다. 6600 슬라이드처럼 GPS 모듈에 대응. 가격은 175유로(한화 27만원). @

 

 

역시 디자인은 한국이 좀 하는듯..

사실 눈에 잘 안들어온다..

"프린트한 종이가 새 것이 되네"…제록스 신기술 공개

Source : http://www.zdnet.co.kr/news/digital/0,39030978,39168396,00.htm

 

미국 제록스가 이미 인쇄된 종이의 글자들을 사라지게 해 용지를 ‘새것’으로 만들 수 있게 하는 신기술을 개발중이다.

이 기술을 이용하면 하루가 지나면 인쇄된 문자나 그림이 사라져 몇 번이나 반복해 용지를 사용할 수 있어 종이 사용량을 줄일 수 있다. 현재로서는 인쇄된 문자는 서서히 옅어져 16~24시간 경과 시점에서 완전히 사라지는 것으로 알려졌다.

clip_image001

◇사진설명: 인쇄한 부분이 사라지고 있는 용지.

제록스는 특정한 빛의 파장을 흡수하면 색을 바꾸는 화합물을 배합한 용지와 그 빛의 파장을 내는 라이트바를 탑재한 프린터를 개발했다. 인쇄된 문자나 그림은 시간이 지나면 서서히 사라지고 열로 따뜻하게 하면 즉석에서 사라진다.

이 기술은 제록스의 연구소인 팔로알토리서치센터(PARC)가 29일(현지시간) 이미 발표했던 것도 포함해 현재 개발중인 신기술 10가지를 공개하면서 알려졌다.

이외 다른 공개된 기술 중에는 문서내 기밀 정보를 검색 및 열람하는 유저의 액세스 권한 수준에 의해 공개하는 부분을 자동적으로 배분해 기밀 정보를 보호하는 기술인 ‘Intelligent redaction’, 디지털 문서에 포함되는 문자와 그림을 해석해 태그를 붙이고 분류할 수 있게 하는 소프트웨어(두 기술 모두 2007년 10월에 발표) 등이 있다. @

 

 

여기서 의문점 ..

잉크값이 비쌀텐데.. 그냥 일반 재생용지(회색의..) 사다쓰는것보다 메리트가 있는가?

보안이라는 허울좋은 이야기로 이상한거 개발했군..

저런게 통하는 미국이 부럽다고 말하는 사람들이 또 있겠지..?

보안 측면에서(일반적인 방법으론 도저히 투자자를 설득할 수 없을것 같다) 사업성을 어떻게 설명할지..

그곳은 합리적인(?) 곳이라서, 어쨌거나 투자자를 설득해야 한다.

어딜가나 엔지니어는 윗사람들을 설득해야 한다.

Tech News에 게시됨. 4 Comments »

이통3사, WINC기반 무선 포털 제공하기로

Source : http://www.kmobile.co.kr/k_mnews/news/news_view.asp?tableid=mbiz&idx=166628

 

한국인터넷진흥원(원장 박승규)과 SK텔레콤(사장 김신배), KTF(사장 조영주), LG텔레콤(사장 정일재)이 국내 무선인터넷 활성화를 위해 본격적으로 나선다.

한국인터넷진흥원과 이통3사(SK텔레콤, KTF, LG텔레콤)는 28일 서울 서초동 한국인터넷진흥원 회의실에서 ‘무선인터넷 활성화를 위한 공동 협력 조인식’을 갖고 ‘오픈넷’이라는 공통된 이름으로 무선인터넷 포털 사이트를 제공하기로 약속했다.

이에 한국인터넷진흥원과 이통3사는 WINC 369(네이버), WINC 527(KBS)과 같이, 현재 등록되어 있는 약 4,800여개의 WINC 기반 모바일 사이트를 토대로 ‘오픈넷’ 사이트를 개발하게 되며, ‘오픈넷’에는 ‘이벤트 사이트 소개’, ‘인기 사이트 소개’, ‘사이트 디렉토리 분류’와 함께, ‘회사명/상품명 등의 키워드를 입력하여 해당 모바일 사이트를 찾을 수 있는 검색 기능’ 등 무선인터넷 포털 사이트로서의 다양한 메뉴와 기능이 제공된다.

※ WINC는 숫자 입력으로 모바일 사이트에 쉽게 접속할 수 있도록 2002년 7월부터 한국인터넷진흥원과 이통3사가 공동으로 제공하고 있는 무선인터넷 접속체계로서,휴대폰 대기화면에 WINC 번호(369)를 입력한 후, 무선인터넷키(네이트, 쇼 또는 매직엔, 이지아이 버튼)를 누르면 해당 무선인터넷 사이트(네이버)에 바로 접속됨

기존에 무선인터넷 이용자들은 이통3사의 포털 사이트(네이트, 쇼 또는 매직엔, 이지아이)만을 위주로 이용해왔으나, ‘오픈넷’을 통해 다양한 WINC 기반 모바일 사이트를 이용할 수 있게 되는 것이다.

KTF와 LGT는 오는 5월에 ‘오픈넷’을 각각 정식 오픈할 예정이며, 이미 지난 2007년 7월에 ‘오픈아이‘ 라는 이름으로 정식 오픈한 SKT는 오는 5월에 ’오픈넷‘으로 사이트명을 변경하여 리뉴얼하게 된다.

이통3사의 ‘오픈넷’ 사이트는 각 이통사 단말기의 무선인터넷버튼(네이트, 쇼 또는 매직엔, 이지아이 버튼)을 짧게 1회 누르면 나오는 무선인터넷 초기메뉴 화면에서 ‘WINC’ 아이콘을 선택하여 접속할 수 있다.

이날 조인식에서 NIDA와 이통3사는 “‘오픈넷’은 다양한 무선인터넷 사이트들을 이용자가 쉽고 편리하게 이용할 수 있도록 NIDA와 이통3사가 협력하여 마련하는 공간이다”라고 밝히며, “한국 무선인터넷 시장의 새로운 성장과 이용자 편의 증대를 위해 다양한 협력을 계속해 나갈 것이다”고 말했다.

 

 

패킷요금부터 내려라.

요즘 디지털 제품 ‘튀어야 산다’

Source : http://www.zdnet.co.kr/news/digital/0,39030978,39168362,00.htm

 

‘튀어야 산다’ 남들과 다르고 싶은 소비자들의 욕구가 강해지면서 디지털 제품의 디자인도 작년보다 더 과감해졌다.

농구공 재질과 같은 상판을 지닌 노트북PC, 해변 조약돌을 닮은 MP3 플레이어, 사과보다 가벼운 전문가용 DSLR 카메라 등 획기적인 발상을 통해 디자인의 차별화를 구현한 제품들이 소비자들의 시선을 ‘확’ 끌어당기고 있다.

대만PC 제조사 아수스가 선보인 노트북PC 신제품(모델명 X80LE-4P099H)는 농구공 표면처럼 엠보싱 처리된 독특한 커버디자인을 채용했다. 그렇다고 해서 엠보싱이란 단어에서 당장 연상되는 푹신푹신한 ‘충격방지’용 커버나 제품 내구성을 언급하면 곤란하다. 단지 이 같은 디자인만을 덧입혔을 뿐.

이 회사는 애당초 스포츠카 디자인에 람보르기니 노트북PC부터 친환경 컨셉의 대나무 노트북PC까지 종전의 제품에서 볼 수 없었던 디자인을 용기있게 적용, 타사 제품과는 다른 브랜드 이미지를 구축하고 있다.

clip_image002

◇사진설명: (사진 왼쪽)아수스 노트북PC X80LE-4P099H, (사진 오른쪽)삼성전자 MP3 플레이어 YP-P2

해변가 조약돌을 연상케 하는 삼성전자의 MP3 플레이어 YP-S2는 목걸이 타입의 제품으로LED 불빛을 곁들여 보석 같은 느낌마저 안겨준다.

제품의 크기는 42×42×16mm이며 무게는 17.2g으로 휴대가 간편하고, 색상은 화이트, 레드, 그린, 퍼플, 블랙 등 총 5가지로 구성됐다.

‘전문가용 DSLR 카메라도 이렇게 가벼워질 수 있다.’ 올림푸스한국이 올 전략기종을 내놓은 최경량 최소형 DSLR카메라 E-420을 두고 한 말이다.

이 제품은 발표회 당시 무게 380g을 강조하기 위해 양팔저울에 사과와 함께 비교하는 퍼포먼스를 펼쳤다. 이 같은 사이즈와 무게를 지녔음에도 불구하고 기능 측면에선 종전의 제품들과 비교해 손색이 없다.

예컨대 E-420은 ▲1,180만 화소의 라이브 MOS센서, ▲176도 광시야각과 햇빛이 강한 곳에서도 선명하게 보이는 2.7인치 하이퍼 크리스탈2 LCD, ▲얼굴인식 AF, ▲초음파 진동식 먼지 제거 기능 등을 모두 지원한다.

clip_image003

◇사진설명: (사진 위)샤프전자 전자사전 RD-CX310, (사진 아래)삼성테크윈의 디지털 카메라 i100과 i80

색상의 변화만으로 소비자들에게 새롭게 어필할 수 있는 제품도 더러 있다.

샤프전자는 종전의 블랙과 그레이 색상을 탈피한 섹시한 빨간색 디자인을 채용한 4.3인치 컬러 전자사전(모델명 RD-CX310)을 선보였다.

여성소비자들을 주 대상으로 삼은 이 제품은 세련된 디자인뿐만 아니라 총 82권의 사전콘텐츠와 동영상 강의 및 영화, 뮤직비디오, MP3 파일 등을 저장할 수 있는 30기가바이트(GB)의 대용량 하드디스크를 탑재해 실용성 측면에서도 결코 뒤쳐지지 않는다.

삼성테크윈의 블루i 시리즈 두 번째 신제품 i100과 i80은 투 톤 컬러를 적용한 제품이다.

이전 검정색 계열의 아날로그 카메라 디자인이 주종을 이뤘던 분위기와는 사뭇 다르다. 다양한 색상의 블루i8이 젊은 세대들로부터 폭발적인 인기를 끌면서 컬러 색상의 제품들이 이 회사의 주요 라인업으로 교체됐다.

i100과 i80은 실버, 다크그레이, 브라운, 레드 등 총 4가지 색상의 투 톤 컬러 매칭을 통해 소비자 선택의 폭을 넓혔다. 또 부드러운 슬라이딩 도어 방식을 채택해 슬라이딩 도어만 밀면 전원이 켜지며, 슬라이딩 도어를 닫으면 렌즈를 안전하게 보호할 수 있는 장점이 있다.

i100은 1020만, i80은 820만 화소를 제공하며, 광학 3배줌 이너 렌즈 방식을 탑재했다.

 

 

난 PC의 하드디스크, 메모리, CPU도 디자인 보고 사는 멍청한 놈이다.

전자제품도 “쇼핑”이기 때문에 눈이 즐거워야 좋지 않겠는가.

LG전자, LCD모니터 독일·미국서 대규모 수주

Source : http://www.kmobile.co.kr/k_mnews/news/news_view.asp?tableid=not&idx=166435

 

LG전자(대표:南鏞,www.lge.com) LCD모니터가 독일, 미국 등 선진시장에서 대규모 물량을 수주하며 바람을 일으키고 있다.

LG전자는 최근 독일 BMW사와 연간 3만대 규모의 LCD모니터 공급계약을 맺었다. 이 제품들은 독일 BMW사무실에서 사용된다. 이는 LG전자 LCD 모니터 단일 건 최대규모의 B2B거래이다.

clip_image002
▲LG전자 22인치 펀모니터

clip_image004
▲포르투갈의 한 전자매장에서 현지인들이 LG LCD모니터를 둘러보고 있다.

한편, 지난 3월, 22인치 LCD모니터가 유럽 최고의 IT매거진인 칩(CHIP) 誌 최고의 제품으로 평가받는 등 독일에서 호평을 받은 바 있고 칩(CHIP) 온라인, 픽스마니아 (Pixmania) 등 평가 및 판매 사이트 등에서도 히트제품으로 선정되기도 했다.

LG전자 모니터사업은 지난해 40% 이상 성장했고 이러한 대규모 물량 공급을 계기로 올해에도 성장추세가 지속될 것으로 예상된다.

LG전자 독일 법인장 정욱 상무는 “환경규제 및 제품규격 등에서 품질기준이 가장 까다로운 곳 가운데 하나가 독일” 이라며 “독일대표 국민기업인 BMW사에 LCD모니터를 공급하게 된 것은 LG의 품질력과 기술력을 인정받은 쾌거로 독일과 유럽에서 LG가 프리미엄 브랜드로 확고히 자리매김하는 계기가 될 것”이라고 밝혔다.

한편, LG전자가 지난 3월 미국시장에 출시한 펀(Fun)모니터 W52시리즈 (W1952TQ-TF, W2252TQ-TF, W2452TQ-TF)가 베스트 바이에서 월 평균 3만대 이상 판매되며 히트 상품으로 평가받고 있다.

베스트 바이 웹사이트 3월 LCD모니터 평가에서 LG전자 22인치 모니터가 “이 제품을 다른 사람에게 추천하겠는가”라는 추천항목에서 5점 만점을 받았다.

『4:3 in Wide』펀키 기능은 화면을 일반화면(4:3)과 와이드 화면 (16:10) 으로 손쉽게 전환가능케 해 와이드 영상 또는 4:3포맷의 게임을 즐길 때 화면 왜곡이 없다.

 

 

LG도 약진하는구나..

와이드급에서 삼성이 약간 주춤하더니 LG가 무섭게 올라오네..

Sharp는 이미 Out of 안중인건가?

하긴 요즘 패널 품질향상을 일본이 못쫓아오는거 같다.

일본 국민 의식 수준은 한국의 그것과 많이 다르다 할 수 있고, 일본은 기술향상 가속도에 있어서 이미 선진국의 대열에서 물러난 것일까? 흐흐..

 

자부심을 갖자! 대한민국 이공계여 파이팅!

Tech News에 게시됨. 2 Comments »

ActiveX Control Tutorial – Part 5

Source : http://www.developer.com/net/vb/article.php/1539671

 

Ciao and welcome to the fifth and final instalment of our ActiveX control tutorial.

As ever, I’m your host Karl Moore, and if you’ve missed any of the previous slots, check them out here:

  • Part One — Introduction to ActiveX controls
  • Part Two — Properties, Enumeration, Resizing
  • Part Three — Events, Mapping, ActiveX Wizard
  • Part Four — Wizardy Whatnots Explained and Property Bags/Pages

This week, we’ll be:

  • Finding out how to distribute your control
  • Answering common questions
  • Learning techniques to ensure your creations stand out above the crowd
  • Looking at how you can use this new skill to enhance your career

So grab your poisoned-nib arrow and SAS survival handbook – and let’s finish the adventure of a lifetime. Alternatively, sit back and enjoy the tutorial.

So, you’ve finally perfected your wonderful creation. It’s flashes, whizzes and whirs – and packs more code than Bletchley Park in 1947.

Now what? Well, we need to distribute the control to our end users.

Thankfully, this part is really easy. In fact, even my pet iguana Strangely Green can do it. You may remember him from the database tutorial. Cute lil’ thing.

Am I digressing? Oh, sorry. Well, let’s get on and figure out how to distribute your control:

  • Launch Visual Basic
  • Open the control you wish to distribute, such as the Super Cool Text Box we’ve been working on over the past few weeks
  • Click on File, Make <ProjectName>.ocx

clip_image001

  • Select the .OCX location in the dialog box and click OK

After a little cranking of the hard disk, Visual Basic will create your own .OCX file. This is your final control.

Top Tip: An OCX is to your ActiveX control what an EXE is to a standard VB project.

So that’s our actual ‘EXE’ sorted. Before we create the setup program for our end user, let’s see our control in action:

> Create a new Standard EXE in Visual Basic

> Select Project, Components

> Find your control in the list, select it and click OK

Top Tip: If your control is called something like ‘Project1′, you can rename it by reopening your control in Visual Basic, selecting Project/Properties, entering something into the ‘Project Description’ box and then recompiling the OCX as above.

You should now find your control in the toolbox of your Standard EXE project.

> Add the control to your form

> Try playing with a few properties, methods and events

You should find that your control works just like any other. And if so, that’s excellent. Let’s continue with our setup program:

  • Launch the ‘Package and Deployment’ wizard, found on the Start menu (usually within the Visual Studio or Visual Basic Program folders)
  • Select your .VBP ActiveX control project after clicking the ‘Browse’ button
  • Hit the ‘Package’ icon
  • If asked if you want to recompile your OCX file, select ‘No’ we did that just a few minutes ago

clip_image002

Now it’s time for the wizard to step in. Follow the prompts through to the end. Note that:

  • On the ‘Cab Options’ screen, select ‘Multiple Cabs’ if you’re going to distribute via floppy disk, or ‘Single Cab’ if you’re going to dish out via CD-ROM or as a zipped up download from the Internet
  • On the ‘Installation Title’ screen, enter the title of your project such as ‘Super Cool Text Box’
  • If you want to save your setup settings for a later session, enter a script name on the ‘Finished!’ screen

Most of the time, you’ll be fine just accepting the defaults. But be sure to read the explanations and change anything you desire.

  • When you’ve cycled through all the wizard screens, hit Finish
  • After your machine stops buzzing, read the brief status report then click Close

That’s it! You’ve just created a setup package for your control, ready to be distributed to your end users!

Try checking out the folder in which the wizard placed your setup files. You did make a note of it, right? It’s probably called ‘Package’.

Try copying these files across to a different computer, running the Setup program (setup.exe) and trying out your control within Visual Basic, Excel or whatever. It should work just the same as it does on your computer!

Well done! You’ve just created and tested a setup package for your control!

In fact, you’d better keep those test setup disks. They’d make an ideal Christmas present for any self-respecting nerd.

Important Top Tip: Now that you’ve compiled your control, it isn’t just restricted to use within Visual Basic. You could utilise it within Excel, Word, Internet Explorer, Visual C++ or any ActiveX-aware application!

Before we get into the intricacies of control versioning and class IDs, let’s talk about something much more important: how to replace that boring little toolbox picture that represents your control.

Open your control in Visual Basic and select the ‘UserControl’ object from the Properties window. This displays all the properties of your control. Find the ToolboxBitmap property and use the ellipsis to set an appropriate picture file.

The size of the toolbar bitmaps is about 16 x 15 pixels but don’t worry if you’re slightly out, Visual Basic will automatically resize the image for you.

If you’re getting desperate for images, you might want to check out the samples that ship with Visual Basic usually in the Program Files\Microsoft Visual Studio\Common\Graphics folder.

Compiling your Control

Every time you compile your OCX control, Visual Basic assigns it a unique class ID. For example, my control was assigned the ID “DF2785AB-AA42-4EEB-9C4B-566B3B70E340″.

Let’s say your friend, erm, Mr Wibbleshaw, has decided to use your control in his latest program. When he distributes his creation, the setup package naturally bundles your control too.

Now here’s something you need to understand: when one of Mr Wibbleshaw’s forms needs to display your control, it shouts out, “Hey, I’m looking for control DF2785AB-AA42-4EEB-9C4B-566B3B70E340″ and hopefully the control comes running along and plonks itself on Wibbelshaw’s form.

So in other words, his application references your control by that automatically generated and guaranteed unique class ID.

And that makes sense. After all, if your control was called ‘Nice Text Box’ and someone else wrote a ‘Nice Text Box’ too the incorrect control could accidentally be displayed. And that control probably wouldn’t support the same properties and methods as the first proper one.

So basically, programs use class IDs to point to (or ‘reference’) controls. But what if news hits the town that you’ve created a new and improved version of your control? All your users rush and install it, including the chaps that use Mr Wibbleshaw’s program.

What will happen?

Well, every time you compile your control, Visual Basic creates a new class ID for it. That means Mr Wibbleshaw’s program would probably be best using the new and improved control but is still looking for the old ID. And since you recompiled the control, it has a new ID.

Confused? Yeah, me too. But the point of this wonderfully written story is that each time you compile your control, it really must stick with the same ID. If it doesn’t, it means the developer using your control has to recompile his program with your new control so it remembers the new class ID.

<Ed: Phew!>

You can keep your ID the same by clicking on Project, Properties in your project after creating your final ready-for-distribution OCX. Click on the ‘Component’ tab and in the Version Compatibility frame, select ‘Binary Compatibility’ and choose your freshly compiled OCX file.

Now, everytime your project tries to compile, it will use the same class ID as the OCX file you just pointed to.

It’s worth noting that sometimes you can’t maintain compatibility between versions of your control because you’ve made such major changes still, if you’ve set the above Binary Compatibility, Visual Basic will at least warn you first.

Raising Errors

Ever been in the middle of testing your application, when one of those horrid grey ‘Error’ boxes appears, offering you the option of Debugging or Ending your program? Oh, choices, choices.

Well, it’s time to get revenge. You can raise your very own errors within controls by using Err.Raise()

Let’s say you created some database control with a ‘Username’ property. And you didn’t want your user to choose the name ‘sa’. Let’s look at how we could handle this in code:

Public Property Let Username(New Username As String)
   
If NewUsername = "sa" Then
  Err.Raise vbObjectError + 101, "Username Property", _
        "Cannot specify username 'sa'"
Else
  mstrUsername = NewUsername
End If
   
End Property

This raises an error in the application attempting to set your control’s Username property. Groovy? I think so.

Top Tip: To find out more about raising errors within your control, look up the ‘Raise Method’ (Visual Basic Reference) in the Visual Basic help files.

If something goes wrong in your own code that you can’t handle, you could try ‘passing back’ the error to the developer using your control. Once again, you could simply use Err.Raise() this time, in your error handler. You’d be raising an error that you received or rather, passing it back.

Resizing your Controls

In our sample Text Box control, we didn’t have to worry about resizing too much. We simply set the dimensions of our Text Box to the dimensions of the UserControl object.

However if we were dealing with more complex items such as a File Open dialog box that needed to perfectly resize all the controls within it you’d need to get much more technical. You’d be dividing heights by three, multiplying the square root of 18 by the width of your control, then taking away the number you last thought of… and so on.

Trust me, resizing work can get pretty complicated. So you might want to think about purchasing one of the many resize controls available that simply does it all for you try checking out our ReSize OCX review for size.

Getting it on the Net

If you have the urge, you can even get your control on the Internet. How?

Well, you might want to test it within Internet Explorer (IE) first. Whilst in your ActiveX control project, try selecting Project, Properties then clicking the ‘Debugging’ tab. Choose the ‘Start component:’ option and select your control. Then click OK and press F5 to run your control within IE.

Whilst running in the browser an ActiveX ‘container’ – click on View, Source. What do you see? Does this make sense after reading the section on class IDs?

To create an Internet setup package for your control, run the Package and Deployment wizard as earlier but this time select ‘Internet Setup’ as opposed to ‘Standard Setup’ and follow the on-screen instructions.

Adding an About Box

Ever noticed how some controls have a really cool ‘About’ box that you can activate by clicking on the ellipsis at the top of the Properties window?

Well, you can add your own by including the following code in your control:

Public Sub About()
' load your about form, whatever it may be
frmAbout.Show
End Sub

After this, select Tools, Procedure Attributes. Select ‘About’ from the drop-down list, then click on the ‘Advanced>>’ button. From the procedure ID drop-down, select the ‘AboutBox’ option. This tells the Properties window that this piece of code displays your About box.

And that’s it!

Top Tip: Don’t forget that you don’t have to display a form as your About box, it could just be as simple as a message box (MsgBox). Still, a form does look groovier!

Let’s Get Multiple

You may have already noticed, but some OCX files pack more than just one simple control. Oh yes. Take the ‘Microsoft Windows Common Controls’ that ship with Visual Basic. That includes a whopping nine separate controls.

So how can you have more than one control in each ActiveX control project? Simple. Just click Project, Add User Control. This adds another ‘workspace’ to your project, which is the ‘form’ of your control.

And then continue developing just as you would normally. When you finally compile the control and add it to a test project, you’ll notice two icons in the toolbar one for each ‘workspace’ (User Control) in your project.

Protecting your Control

So, you’ve created your own supercool control and want to release it to the world – but are slightly worried about devious developers devouring dodgy yet delectable distributions? Or in English, you’re worried about piracy?

No problems. Although I’ve never personally needed to go this far, there are numerous programs on the market to help you create ‘Trialware’, a time- or feature-limited product that gives developers a taste of your talents.

One such example is Soft Sentry 3, a trial of which is available for download from www.twenty.com

Retrieving the Control Name

Ever wondered how the Text Box control inserts its Visual Basic name into the Text property each time you add one to a form such as Text1, Text2 and so on?

It’s easy to do. Simply grab the DisplayName property of the Ambient object, like this:

Text1.Text = Ambient.DisplayName

Don’t forget, the Ambient object contains information about your control’s environment, such as the BackColor and Font of the form it resides on. It’s a good idea to make your control be a good little boy – and use these properties to set it’s own BackColor and so on.

First off, I’d like to personally congratulate you on getting this far in the ActiveX control tutorial. It’s been a tough course, but you’re obviously a tougher cookie.

But where do you go from here? What should you do with this newfound talent?

Well, controls are a great way to encapsulate all your hard work and programming logic into a simple widget you can throw onto a form. Or an Excel spreadsheet. Or a Word document. Or whatever.

They allow you to take all the complicated stuff such as the code we wrote for the Super Cool Text Box control, the actual Text Box and so on and turn it into something simple, our end product.

Wondering where to go next? Here are a few control ideas I thought about whilst having a shower this morning:

  • Improved Timer Control The current Timer that ships with Visual Basic fires off, at the very least, once every 65535 milliseconds (just over a minute). Sometimes I want a timer to fire every ten minutes or so and end up writing code to increment a timer counter, fire off, reset the counter and start again from the beginning. It gets very sticky though all this work could be encapsulated into a control.
  • Date Picker Control – You could take Microsoft’s existing Date Picker control and add your own unique properties. For instance, IsWeekend (Boolean), FirstDayOfMonth (Date) and LastDayOfMonth (Date). If you wanted to be really groovy, I’m sure an IsPublicHoliday (Boolean) would also be greatly appreciated!
  • Marquee Control How about creating a control that scrolls text along a Text Box or Label? I guess you’d use the Timer control to activate the movement, and change the Interval depending on how fast you wanted the text to move.
  • Do That API Thang As the VB-World.net API section (www.vb-world.net/api/) shows, you can do a lot of groovy stuff with API calls. For instance, you could spice up the Text Box control by adding new features (http://www.vb-world.net/controls/textboxex/). Or include new properties in the Tree View control, such as ‘BackgroundColour’ currently only changeable via API calls.

… and the list goes on!

So go ahead and let us know how you progress! Feel free to post your achievements right here on our bulletin board.

If you’re interested in what other programmers are getting up to, you might want to check out:

  • Progress Control See how the guys at VBWeb created a progress control that throws Microsoft’s Progress Bar right out the window.
  • Chart Control Learn how our very own Sam Huggil decided the Microsoft Chart control was too big to distribute with his applications so created his own version! (I’d also like to mention that Sam has a couple of neat ActiveX control tutorials here.
  • Hyperlink Control – Once again, the chaps behind VBWeb dress to impress with this groovy Hyperlink control. (More controls from VBWeb here).
  • Visual Dice Control Check out how VBExplorer knocked up a visual die for potential use in games.

Check these out, look at the source code, learn how they work. That’s the best way to continue exploring ActiveX controls.

You may also want to check out the VB-World.net Component Source store, which lists dozens of commercial third-party controls.

This week, we’ve figured out how you can pack your groovy ActiveX control into a neat setup package.

We went on to tie up any loose ends and discussed how to change the toolbar control image, how class IDs work, figured out raising errors in code, took a peek at products to help with resizing and creating trial programs, looked at the Ambient object, plus even skimmed over how we can get our control online.

The tutorial then (finally) concluded with a look at what others have done with controls, plus a roundup of ideas for future practice.

Whew, I think we need a rest!

Hopefully this tutorial has helped you understand how to create your own ActiveX controls, plus given you an even greater knowledge of Visual Basic. I hope it gets you a better job, a pay rise, and possibly a small island near Hawaii. A girlfriend wouldn’t go amiss neither.

Err, just don’t forget me, OK? clip_image003

But whatever you get up to, in and out of the Visual Basic realms, I’d like to wish you all the very best and thanks for joining me in our adventurous trip to ActiveX land.

So until the next time, this is Karl Moore signing off, hoping you all have a pleasant evening, wherever you are. Goodnight!

팔로우

모든 새 글을 수신함으로 전달 받으세요.