ÀÌ ¹®¼ÀÇ ½ºÅ©¸³Æ® ¿¹Á¦; ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¿¡ Å°¸¦ Ãß°¡ ÇÏ´Â ¹æ¹ý µî·ÏÀÚ COM ¼¹ö; µî·Ï ¿©·¯ ±¸¹® ºÐ¼® Æ®¸® ÁöÁ¤¡£
´ÙÀ½ ±¸¹® ºÐ¼® Æ®¸®´Â ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¿¡ ÇϳªÀÇ Å°¸¦ Ãß°¡ ÇÏ´Â °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ º¸¿© ÁÝ´Ï´Ù. ½ºÅ©¸³Æ®´Â Å°¸¦ Ãß°¡ Çϴ ƯÈ÷, MyVeryOwnKey
, HKEY_CURRENT_USER
. ±×°ÍÀº ¶ÇÇÑÀÇ ±âº» ¹®ÀÚ¿ °ªÀ» ÇÒ´ç HowGoesIt?
»õ Å°:
HKEY_CURRENT_USER
{
nbsp; 'MyVeryOwnKey' = s 'HowGoesIt?'
}(&N)
ÀÌ ½ºÅ©¸³Æ® ¿©·¯ ÇÏÀ§ Å°¸¦ ´ÙÀ½°ú °°Àº Á¤ÀǸ¦ ½±°Ô È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.:
HKCU
{
nbsp; 'MyVeryOwnKey' = s 'HowGoesIt?'
? {
???? ' HasASubkey'
???? {
??????? 'PrettyCool?' d '55' =
??????? ¹ß 'ANameValue' = 'WithANamedValue' s
???? }
? }
}(&N)
½ºÅ©¸³Æ®´Â ÇÏÀ§ Å°¸¦ Ãß°¡ ÇÏ´Â Áö±Ý, HasASubkey
, MyVeryOwnKey
. ÀÌ ÇÏÀ§ Å°¿¡ ¸ðµÎ Ãß°¡ PrettyCool?
(55ÀÇ ±âº» DWORD °ª)¿Í ÇÔ²² ÇÏÀ§ Å°¸¦ ANameValue
¶ó´Â °ªÀÇ ¹®ÀÚ¿ °ª (¿Í ÇÔ²²WithANamedValue)
¡£
´ÙÀ½ ½ºÅ©¸³Æ® ÀÚü µî·ÏÀÚ COM ¼¹ö µî·Ï¡£
HKCR
{
nbsp; ATL.µî·Ï = s ' ATL 2.0 µî·Ï Ŭ·¡½º
? {
???? CLSID = s '{44EC053A-400F-11D0-9DCD-00A0C90391D3}'
? }
? NoRemove CLSID
? {
???? ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3} =
????????????????? s ' ATL 2.0 µî·Ï Ŭ·¡½º
???? {
??????? ProgID = s ' ATL.µî·Ï '
??????? InprocServer32 = s '¸ðµâ %'
??????? {
?????????? ¹ß ThreadingModel = s '¾ÆÆÄÆ®'
??????? }
???? }
? }
}(&N)
ÀÌ ±¸¹® ºÐ¼® Æ®¸®¸¦ ·±Å¸ÀÓ¿¡ Ãß°¡ ÇÕ´Ï´Ù ATL.Registrar
Å°¸¦ HKEY_CLASSES_ROOT
. ÀÌ »õ Å°¿¡ ´ÙÀ½ it:
ATL Registrar 2.0 Class
Å°ÀÇ ±âº» ¹®ÀÚ¿ °ªÀ¸·Î¡£CLSID
ÇÏÀ§ Å°·Î¡£{44EC053A-400F-11D0-9DCD-00A0C90391D3}
¿¡ ´ë ÇÑ CLSID
. (ÀÌ °ªÀº µî·ÏÀÇ CoCreateInstance¿Í ÇÔ²² »ç¿ë Çϱâ À§ÇØ CLSID.)
ÀÌÈÄ CLSID
Àº °øÀ¯ ÇÏÁö Á¦°Å ÇØ¾ß µî·Ï Ãë¼Ò ¸ðµå¿¡¼. ¼º¸í, NoRemove CLSID
, ³ªÅ¸³»´Â ÀÌ·¸°Ô CLSID
·¹Áö½ºÅÍ ¸ðµå·Î ¿ ¹× µî·Ï Ãë¼Ò ¸ðµå¿¡¼ ¹«½Ã ÇÑ´Ù¡£
ForceRemove
¹®À» Å°¿Í ¸ðµç ÇÏÀ§ Å°¸¦ ´Ù½Ã ¸¸µé±â Àü¿¡ Á¦°Å ÇÏ ¿© û¼Ò ±â´ÉÀ» Á¦°ø ÇÕ´Ï´Ù. ÀÌ ÇÏÀ§ Å°ÀÇ À̸§À» º¯°æ ÇÏ´Â °æ¿ì¿¡ À¯¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ½ºÅ©¸³Æ® ¿¹Á¦¿¡¼ ForceRemove
ÀÖ´ÂÁö È®ÀÎ {44EC053A-400F-11D0-9DCD-00A0C90391D3}
ÀÌ¹Ì Á¸Àç ÇÕ´Ï´Ù. ¸¸¾à ¾ÊÀ¸¸é,ForceRemove
:
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
¹× ¸ðµç ÇÏÀ§¡£{44EC053A-400F-11D0-9DCD-00A0C90391D3}
¡£ATL Registrar 2.0 Class
¿¡ ´ë ÇÑ ±âº» ¹®ÀÚ¿ °ªÀ¸·Î{44EC053A-400F-11D0-9DCD-00A0C90391D3}
¡£
±¸¹® ºÐ¼® Æ®¸®´Â ÀÌÁ¦ µÎ °¡Áö »õ·Î¿î ÇÏÀ§ Å°¸¦ Ãß°¡ {44EC053A-400F-11D0-9DCD-00A0C90391D3}
. ù ¹ø° Å° ProgID
, Progid´Â ±âº» ¹®ÀÚ¿ °ªÀ» °¡Á®¿É´Ï´Ù. µÎ ¹ø° Å° InprocServer32
, ±âº» ¹®ÀÚ¿ °ªÀ» °¡Á®¿É´Ï´Ù %MODULE%
, Áï.ÀÌ ¹®¼ÀÇ ¼½¼Ç ´ëü »ç¿ë °¡´ÉÇÑ ¸Å°³ º¯¼ö (µî·ÏÀÚÀÇ Àü󸮱â)¿¡¼ ¼³¸í ÇÏ´Â Àü󸮱⠰ª InprocServer32
¶ÇÇÑ ¸í¸í µÈ °ªÀ» °¡Á®¿É´Ï´Ù ThreadingModel
ÀÇ ¹®ÀÚ¿ °ªApartment
¡£
½ºÅ©¸³Æ®¿¡¼ Çϳª ÀÌ»óÀÇ ±¸¹® ºÐ¼® Æ®¸®¸¦ ÁöÁ¤ ÇÏ·Á¸é ´Ü¼øÈ÷ ´Ù¸¥ ³¡¿¡ ÇϳªÀÇ Æ®¸®¸¦ ¹èÄ¡ ÇÕ´Ï´Ù. ´ÙÀ½ ½ºÅ©¸³Æ®´Â Å°¸¦ Ãß°¡ ÇÏ´Â ¿¹¸¦ µé¾î, MyVeryOwnKey
, ¸ðµÎ¿¡ ´ë ÇÑ ±¸¹® ºÐ¼® Æ®¸®¸¦ HKEY_CLASSES_ROOT
¹×HKEY_CURRENT_USER
:
HKCR
{
nbsp; 'MyVeryOwnKey' = s 'HowGoesIt?'
}
HKEY_CURRENT_USER
{
? 'MyVeryOwnKey' = s 'HowGoesIt?'
}(&N)
¸Þ¸ðnbsp;??µî·ÏÀÚ ½ºÅ©¸³Æ®¿¡¼ 4 K ÃÖ´ë ÅäÅ« Å©±âÀÔ´Ï´Ù. (ÅäÅ« ±¸¹®¿¡¼ ÀνÄÇÒ ¼ö ÀÖ´Â ¿ä¼ÒÀÔ´Ï´Ù.) ÀÌÀü ½ºÅ©¸³Æà ¿¹Á¦¿¡¼ HKCR
, HKEY_CURRENT_USER
, 'MyVeryOwnKey'
, ¹× 'HowGoesIt?'
Àº ¸ðµç ÅäÅ«(&N)¡£