CAB ÆÄÀÏ ÀÛ¼º¹ý

1  infÆÄÀÏÀ» ÀÛ¼ºÇÑ´Ù.
ÄÁÆ®·ÑÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ´Ù¿î·Îµå ¹Þ°Å³ª ÀÖ¾î¾ß ÆÄÀÏÀÇ Á¤º¸°¡ ÅؽºÆ®·Î ¸í½ÃµÇ¾î ÀÖ´Â ÆÄÀÏÀÌ´Ù
atltest.INF 

»ùÇÃÀÇ DLL ¸íĪÀÌ atltest.dllÀÌ´Ù.  ´Ù¸¥ dllÀ̶ó¸é atlstest ´ë½Å ġȯ ÇØÁÖ¸é µÈ´Ù.
clsid´Â atltest.htm¿¡ ÀÖ´Â clsid¸¦ Àû¾îÁÖ¸é µÈ´Ù.

Âü°í- MFC·Î ATL »ç¿ë½Ã  ¿øº»: http://jys92.com.ne.kr/VisualC/MakeCab.htm

.inf ÆÄÀÏ ÀÛ¼º¹ý

.inf ÆÄÀÏÀº Visual Basic¿¡¼­´Â ¹èÆ÷¸¶¹ý»ç¿¡¼­ VB project¸¦ ¼³Á¤ÇÏ¿© .inf ÆÄÀÏÀÌ ÀÚµ¿À¸·Î »ý¼ºµÇ¾î .cab ÆÄÀÏ¿¡ Æ÷ÇԵȴÙ. ±×·¯³ª Visual C++·Î ÇÁ·Î±×·¥Çß´Ù¸é ºÒÇàÈ÷µµ ¼öµ¿À¸·Î ÀÛ¼ºÇؾ߸¸ ÇÑ´Ù. ÀÛ¼º ¿¹¸¦ º¸¸é ´ÙÀ½°ú °°´Ù.

; ========================= test.inf ========================

; This .inf file will control the installation of the MFC test
; control. This control has been compiled with Visual C++ version 4.2.
; The FileVersion tags in the dependent DLLs section on this file
; reflect this requirement.

[version]
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
test.ocx=test.ocx
; These are the necessary supporting DLLs for MFC 4.2 ActiveX Controls
mfc42.dll=mfc42.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll

; dependent DLLs
[msvcrt.dll]
; This is an example of conditional hook. The hook only gets processed
; if msvcrt.dll of the specified version is absent on client machine.
FileVersion=6,0,8168,0
hook=mfc42installer

[mfc42.dll]
FileVersion=6,0,8168,0
hook=mfc42installer

[olepro32.dll]
FileVersion=5,0,4261,0
hook=mfc42installer

[mfc42installer]
file-win32-x86=<LINK TYPE="GENERIC" VALUE="http://activex.microsoft.com
/controls/vc/mfc42.cab">http://activex.microsoft.com/controls/vc
/mfc42.cab</LINK>
; If dependent DLLs are packaged directly into the above cabinet file
; along with an .inf file, specify that .inf file to run as follows:
;InfFile=mfc42.inf
; The mfc42.cab file actually contains a self extracting executable.
; In this case we specify a run= command.
run=%EXTRACT_DIR%\mfc42.exe

; thiscab is a keyword which, in this case, means that test.ocx
; can be found in the same .cab file as this .inf file
; file-win32-x86 is an x86 platform specific identifier
; See the ActiveX SDK - ActiveX Controls - Internet Component Download -
; Packaging component code for automatic download

[test.ocx]
file-win32-x86=thiscab
; *** add your controls CLSID here ***
clsid={0D886696-C7CE-11D3-A175-08002BF17507}
; Add your ocx's file version here.
FileVersion=1,0,0,1
RegisterServer=yes

 

À§ÀÇ ³»¿ë Áß test¸¦ ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ ActiveX ÄÁÆ®·ÑÀÇ À̸§À¸·Î º¯°æÇÏ°í Áß°£¿¡¼­ ¾à°£ À§ÀÇ clsid={0D886696-C7CE-11D3-A175-08002BF17507}¸¦ ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ ÄÁÆ®·ÑÀÇ clsid·Î ¼öÁ¤Çϸé(clsid´Â ActiveX ÄÁÆ®·ÑÀ» ¸¸µç µð·ºÅ丮ÀÇ .odl ÆÄÀÏÀ» ¿­¾î °¡Àå ¸¶Áö¸·¿¡ ³ª¿Í ÀÖ´Â id¸¦ ÀÔ·ÂÇÏ¸é µÈ´Ù)º¸¸é .inf ÆÄÀÏ ÀÛ¼ºÀº ¿Ï·áµÈ´Ù.

 Âü°í·Î inf ÆÄÀÏÀÇ ³»¿ëÀ» ´ë°­ Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.

¼¼¹ÌÄÝ·Ð(;) : ÁÖ¼®¹®À» Ç¥½ÃÇÑ´Ù.

[Add.Code] : ¼³Ä¡ÇÒ ÆÄÀϵéÀ» ³ª¿­ÇÑ´Ù.

test.ocx=test.ocx
mfc42.dll=mfc42.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll

Áï test.ocx, mfc42.dll, msvcrt.dll, olepro32.dllÀ» ¼³Ä¡ÇÑ´Ù´Â ÀǹÌÀÌ´Ù. ±×´ÙÀ½ ºÎÅÍ´Â [Add.Code]¿¡¼­ ¼³Á¤ÇÑ ÆÄÀϵéÀÇ ¼Ó¼ºÀ» ¼³Á¤ÇÑ´Ù.

[test.ocx]
file-win32-x86=thiscab
clsid={0D886696-C7CE-11D3-A175-08002BF17507}
FileVersion=1,0,0,1
RegisterServer=yes

clsid´Â ÀÛ¼ºÇÑ OCX ÆÄÀÏÀÇ CLSID¸¦ ÀÔ·ÂÇÑ´Ù.

FileVersionÀº ÀÛ¼ºÇÏ] OCX ÆÄÀÏÀÇ ¹öÀüÀ» ÀÔ·Â(Resource¿¡¼­ ¼³Á¤ÇÑ °ª°ú °°ÀÌ ÀÔ·Â)ÇÑ´Ù. ¼³¸í»ó FileVersionÀº ActiveX ÆÄÀÏÀ» ÀÛ¼ºÇÏ¿© ¹èÆ÷ÇÏ´ø Áß ¹ö±×¸¦ ¹ß°ßÇÏ¿© ¼öÁ¤ÇÏ¿© Àç ¹èÆ÷¸¦ ÇÒ ¶§ ÀÌ ÆÄÀÏ ¹öÀüÀ» ³ô¿© ÁÖ¸é Client¿¡¼­ ¾Ë¾Æ¼­ ´Ù½Ã ´Ù¿î·Îµå¸¦ ¹Þ´Â´Ù ¶ó°í µÇ¾î ÀÖ¾ú´Âµ¥ ÇÊÀÚ°¡ Å×½ºÆ® Çغ¸´Ï Àß µÇÁö ¾Ê¾Ò´Ù. Å×½ºÆ® Çغ¸±â ¹Ù¶õ´Ù.

³ª¸ÓÁö ÆÄÀϵéÀº Visual C++·Î ActiveX ÇÁ·Î±×·¥À» ÀÛ¼ºÇßÀ» ¶§ ÀϹÝÀûÀ¸·Î ÇÊ¿äÇÑ dll ÆÄÀϵéÀÌ´Ù. ¸¸¾à °°Àº ¹öÀüÀÇ Visual C++ÀÌ ¼³Ä¡µÇ¾î ÀÖÀ¸¸é ¼³Ä¡ µÇÁö ¾Ê°í ±×·¸Áö ¾ÊÀ¸¸é ¼³Ä¡µÈ´Ù.

[msvcrt.dll]
FileVersion=6,0,8168,0
hook=mfc42installer

FileVersionÀº ¼³Ä¡µÉ dllÀÇ ¹öÀüÀÌ´Ù. ÇöÀç inf ¼³¸í¿¡ Àû¾î ³õÀº ¹öÀüÀº Visual C++ 6.0À¸·Î ÇÁ·Î±×·¥ ÇßÀ» °æ¿ì ¹öÀüµéÀÌ´Ù.

hookÀº ¼³Ä¡ÇÒ ¹æ¹ýÀ» ¼³Á¤ÇÏ´Â ºÎºÐÀÇ TitleÀ» ÀÔ·ÂÇÑ´Ù.

[mfc42installer]
file-win32-x86=<LINK TYPE="GENERIC" VALUE="http://activex.microsoft.com
/controls/vc/mfc42.cab">http://activex.microsoft.com/controls/vc
/mfc42.cab</LINK>
run=%EXTRACT_DIR%\mfc42.exe

http://activex.microsoft.com/controls/vc/mfc42.cabÀ¸·ÎºÎÅÍ ´Ù¿î·ÎµåÇÏ¿© ºÎ°¡Àû dllÀ» ¼³Ä¡Çϵµ·Ï ¼³Á¤ÇÑ °ÍÀÌ´Ù.

 

2. CAB ÆÄÀÏ·Î ¹­±â
atltest.cabÀ¸·Î ¹­¾î º¸ÀÚ. º¸Åë »ç¿ëµÇ´Â°Ç 2°¡Áö ¿É¼ÇÀÌ´Ù.  ¾î´ÀÂÊÀ» »ç¿ëÇÏ´ø Ưº°ÇÑ ¹®Á¦´Â ¾ø´Ù.

D:\CAB&SIGN\CABARC -s 6144 atltest.CAB ATL.DLL atltest.DLL atltest.INF 

-s cabÆÄÀÏÀ» ¹­À» ¶§, 6144¸¸Å­ Å©±â¸¦ ¿¹¾àÇÑ´Ù.

D:\CAB&SIGN\CABARC N atltest.CAB ATL.DLL atltest.DLL atltest.INF 

NÀº »õ·Î¿î ijºñ³ÝÀ» ¸¸µé ¶§ »ç¿ëÇÏ´Â ¿É¼ÇÀÌ´Ù.

3. CAB ÆÄÀÏ ¼­¸í

Test ¼­¸í¸¸ ÇÒ °æ¿ì¿¡´Â ¿©±â¿¡¼­ ´Ù¿î·Îµå  ¹Þ¾Æ¼­ »ç¿ëÇϱ⸦ ¹Ù¶õ´Ù. ÀÚ¼¼ÇÑ ¼³¸íÀº readme.txtµµ ¾ÐÃàÆÄÀϾȿ¡ °°À× ÀÖ´Ù.

¿ø¹®: http://digital2000.pe.kr/htmls/eng/activex/internet/cabsign.html

http://jys92.com.ne.kr/VisualC/MakeCab.htm

»ý¼ºµÈ .cerÆÄÀÏÀ» spc ÆÄÀÏ·Î ¹Ù²Ù±â

cer2spc test.cer test.spc

signcode¸¦ ½ÇÇàÇÏ¿© ÀÎÁõÈ­ÀÏÀ» ¹èÆ÷È­ÀÏ¿¡ Sign ÇÑ´Ù.

<º¸¾ÈÀÎÁõ Sign Çϱâ>: µµ½ºÃ¢¿¡¼­ ÀÛ¾÷ÇÑ´Ù.
- »ç¿ë¹æ¹ý: signcode -v [*.pvk ÆÄÀϸí] -spc ÆÄÀϸí] [*.CABÈ­Àϸí]

d:\atltest>d:\signcode\bin\singcode -v atltest.pvk -spc atltest.spc atltest.CAB

- ÀÎÁõÈ­ÀÏ¿¡ ´ëÇÑ ¾ÏÈ£¸¦ ÀÔ·ÂÇÑ´Ù.(ÀÎÁõÈ­ÀÏÀ» ´Ù¿î·ÎµåÇÒ ¶§ ÀÔ·ÂÇÑ ¾ÏÈ£¸¦ ÀÔ·ÂÇÕ´Ï´Ù.)

 

¼º°øÀûÀ¸·Î ÀÎÁõÀÌ µÇ¸é ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ µµ½ºÃ¢¿¡¼­ º¼ ¼ö ÀÖ´Ù.

Warning: This file is signed. but not timestamped.
Succeeded.

ÀÎÁõ ³»¿ëÀ» È®ÀÎÇÏ°í ½Í´Ù¸é binµð·ºÅ丮¿¡¼­ chktrust.exe atltest.exe¸¦ ½ÇÇàÇÑ´Ù.
[¾Æ´Ï¿À]¹öÆ°À» Ŭ¸¯ÇÑ´Ù.
 

¼º°øÀûÀ¸·Î ÀÎÁõÈ®ÀÎÀÌ µÇ¾ú´Ù¸é ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ º¸°ÔµÈ´Ù.(¿©±â¼­ ³­ Å×½ºÆ® ¹öÀüÀ» »ç¿ëÇß´Ù.)

The subject is not trusted for the specified action
Result = 900b001. (-1143456890)

 

 4. »ç¿ë±ÇÇÑ ÆÄÀÏ ÀÛ¼º:

lpk_tool.exe¸¦ ½ÇÇàÇÏ¿© ÇØ´çÇÏ´Â ActiveX ControlÀ» ã´Â´Ù(¿©±â¼­´Â SampleCtrl ClassÀÌ´Ù).
±×¸®°í [Add -> ]¹öÆ°À» ´©¸¥´Ù.
ActiveX ÄÁÆ®·ÑÀ» Æ÷ÇÔÇÑ HTML ¹®¼­¿¡ "*.LPK"ÆÄÀÏÀ» ¸í½ÃÇÏÁö ¾ÊÀ¸¸é ActiveX ÄÁÆ®·ÑÀÌ Á¦´ë·Î ½ÇÇàµÇÁö ¾Ê´Â´Ù.

 

À§¿¡¼­ [Save & Exit]¹öÆ°À» ´©¸¥´Ù. ±×¸®°í atltest.lpk¸¦ ÀÔ·ÂÇÏ°í [ÀúÀå]¹öÆ°À» ´©¸¥´Ù.
HTML ¹®¼­°¡ À§Ä¡ÇÑ °æ·Î ¶Ç´Â ¿øÇÏ´Â À§Ä¡¿¡ "*.LPK" ÆÄÀÏÀ» ÀÛ¼ºÇÑ´Ù.

¼º°øÀûÀ¸·Î ÀÛ¼ºµÇ¾ú´Ù´Â ¸Þ½ÃÁö°¡ ¶ã °ÍÀÌ´Ù.

 

5. HTML Ç¥½Ã

http://digital2000.pe.kr/htmls/eng/activex/internet.html
http://digital2000.pe.kr/htmls/eng/activex/internet/webdisp.html

»çÀÌÆ®ÀÇ ³»¿ëÀÌ ÀߵǾî Àֱ⠶§¹®¿¡ ±×´ë·Î Æۿ³»¿ëÀÌ´Ù.

ActiveX ÄÁÆ®·ÑÀ» À¥ ºê¶ó¿ìÀú¿¡ Ç¥½ÃÇϱâ


HTML ¹®¼­¿¡ Ãß°¡Çϱâ
1. HTML Sample À» ÂüÁ¶ ÇÕ´Ï´Ù.
- ÀÀ¿ëÇÁ·Î±×·¥ ¸¶¹ý»ç¸¦ »ç¿ëÇÏ¿© ¹èÆ÷È­ÀÏ(CAB)À» ÀÛ¼ºÇÑ °æ¿ì, ÇØ´ç ActiveX ÄÁÆ®·Ñ¿¡ ´ëÇÑ HTML Sample CODE °¡ ÀÛ¼ºµË´Ï´Ù.
- Sample HTML CODE ¸¦ ÂüÁ¶ÇÏ¿© »ç¿ëÀÚ°¡ ¿øÇÏ´Â À§Ä¡¿¡ ActiveX ÄÁÆ®·ÑÀ» Ç¥ÇöÇØ º¸¼¼¿ä.
- "OBJECT" ű׸¦ »ç¿ëÇÏ¿© ÄÁÆ®·Ñ ID ¹× Å©±â, CLSID, ¹öÁ¯Á¤º¸, ¹èÆ÷ÇüÅ µîÀ» ±â¼ú ÇÕ´Ï´Ù.
¡Ø "CLSID" ´Â ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¿¡ ±â·ÏµÈ ¶óÀ̼±½º Á¤º¸ ÀÔ´Ï´Ù.
¡Ø ¹èÆ÷ÇüÅ´ "*.OCX" Çü½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª Á¤»óÀûÀÎ ´Ù¿î·Îµå ¹× ½ÇÇàÀ» º¸ÀåÇÒ ¼ö ¾ø½À´Ï´Ù.


¢Ñ Sample HTML CODE


2. ¶óÀ̼±½º ÆÐÅ°Áö È­ÀÏ Ã·ºÎ
- ¶óÀ̼±½º ÆÐÅ°Áö È­ÀÏ(*.LPK) Á¤º¸¸¦ ÷ºÎ ÇÕ´Ï´Ù.
- "*.LPK" È­ÀÏ ÀÛ¼º ¹æ¹ýÀº
(¿©±â¸¦ Ŭ¸¯ Çϼ¼¿ä.)
- "*.LPK" ¿¡ ´ëÇÑ CODE ¸¦ ¸ÕÀú ±â¼úÇÑ µÚ, ActiveX ÄÁÆ®·Ñ¿¡ ´ëÇÑ HTML CODE ¸¦ ±â¼ú ÇÕ´Ï´Ù.
¡Ø ¶óÀ̼±½º ÆÐÅ°Áö È­ÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ±â¼úÇÏÁö ¾ÊÀ» °æ¿ì, ActiveX ÄÁÆ®·ÑÀÌ À¥ ºê¶ó¿ìÀú¿¡ Á¦´ë·Î Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.


¢Ñ "*.LPK" È­ÀÏÁ¤º¸ Ãß°¡


3. ActiveX ÄÁÆ®·Ñ¿¡ ´ëÇÑ ¼Ó¼º°ª ¼³Á¤
- ActiveX ÄÁÆ®·ÑÀÌ °¡Áø °íÀ¯ÀÇ ¼Ó¼º°ªÀ» HTML ű׸¦ »ç¿ëÇÏ¿© ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
- "PARAM NAME" ű׸¦ »ç¿ëÇÏ¿© ¼Ó¼º À̸§ ¹× ¼Ó¼º°ªÀ» Ãß°¡ ÇÕ´Ï´Ù.
¡Ø (ÁÖÀÇ) ÀÌ¿Í°°Àº ¹æ¹ýÀº À¥ºê¶ó¿ìÀú¿¡¼­ "½ºÅ©¸³Æ® ½ÇÇà" ¿©ºÎ¸¦ ¹¯´Â °æ°í ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÏ°Ô ¸¸µì´Ï´Ù.


¢Ñ ÄÁÆ®·Ñ ¼Ó¼º°ª ÀÔ·Â