Wednesday, March 10, 2010

සිංහලෙන් win32 Portable Executable format - part 9

පසුගිය සතියේ RT_DIALOG පිළිබදව විස්තර කිරීමක් සිදු කර ඇත. තවද dialog එකක් තුල ඇති Object classes කිහිපයක් ගැනද, ඒවායේ attribute ගැනද සදහන් කර ඇත. මේ සතියේ තවත් Object classes කිහිපයක් ගැන සදහන් කිරීමට බලාපොරොත්තු වෙමි.





COMBO BOX
STYLE NAMEBIT #
CBS_LOWERCASExviii=1
CBS_UPPERCASExix=1
CBS_DISABLENOSCROLLxxi=1
CBS_NOINTEGRALHEIGHTxxii=1
CBS_HASSTRINSxxiii=1
CBS_SORTxxiv=1
CBS_OEMCONVERTxxv=1
CBS_AUTOHSCROLLxxvi=1
CBS_OWNERDRAWVARIABLExxvii=1
CBS_OWNERDRAWFIXEDxxviii=1
CBS_DROPDOWNLISTxxxi=1 And
xxxii=1
CBS_DROPDOWNxxxi=1 And
xxxii=0
CBS_SIMPLExxxi=0 And
xxxii=1

msctls_trackbar32
TBS_NOTHUMBxxv=1
TBS_FIXEDLENGHTxxvi=1
TBS_ENABLESELRANGExxvii=1
TBS_NOTICKSxxviii=1
TBS_HORZxxxi=0
TBS_VERTxxxi=1
TBS_AUTOTICKSxxxii=1
TBS_RIGHTxxx=0
TBS_BOTTOMxxx=0
TBS_TOPxxx=1
TBS_LEFTxxx=1
TBS_BOTHxxix=1

msctls_updown32
UDS_NOTHOUSANDSxxv=1
UDS_HORZxxvi=1
UDS_ARROWKEYSxxvii=1
UDS_AUTOBUDDYxxviii=1
UDS_ALIGNLEFTxxix=1
UDS_ALIGNRIGHTxxx=1
UDS_SETBUDDYINTxxxi=1
UDS_WRAPxxxii=1

msctls_progress32
PBS_VERTICALxxx=1
PBS_SMOOTHxxxii=1

SysListView32
LVS_NOSORTHEADERxvii=1
LVS_NOCOLUMHEADERxviii=1
LVS_NOSCROLLxix=1
LVS_OWNERDATAxx=1
LVS_OWNERDRAWFIXEDxxii=1
LVS_EDITLABELSxxiii=1
LVS_AUTOARRANGExxiv=1
LVS_ALIGNTOPxxi=0
LVS_ALIGNLEFTxxi=1
LVS_NOLABELWRAPxxv=1
LVS_SHAREIMAGELISTSxxvi=1
LVS_SORTDESCENGINGxxvii=1
LVS_SORTASCENDINGxxviii=1
LVS_LISTxxxi=1 And
xxxii=1
LVS_SMALLICONxxxi=1 And
xxxii=0
LVS_REPORTxxxi=0 And
xxxii=1
LVS_ICONxxxi=0 And
xxxii=0
LVS_SHOWSELALWAYSxxx=1
LVS_SINGLESELxxix=1

SysTreeView32
TVS_SHOWSELALWAYSxxvi=1
TVS_DISABLEDRAGDROPxxvii=1
TVS_EDITLABELSxxviii=1
TVS_LINESATROOTxxix=1
TVS_HASLINESxxxi=1
TVS_HASBUTTONSxxxii=1

SysTabControl32
TCS_FOCUSNEVERxvii=1
TCS_TOOLTIPSxviii=1
TCS_OWNERDRAWFIXEDxix=1
TCS_FOCUSONBUTTONDOWNxx=1
TCS_RIGHTJUSTIFYxxii=0
TCS_FIXEDWIDTHxxii=1
TCS_SINGLExxiii=0
TCS_MULTILINExxiii=1
TCS_TABSxxiv=0
TCS_BUTTONSxxiv=1
TCS_RAGGEDRIGHTxxi=1
TCS_VERTICALxxv=1
TCS_HOTTRACKxxvi=1
TCS_FORCELABELLEFTxxvii=1
TCS_FORCEICONLEFTxxviii=1
TCS_RIGHTxxxi=1
TCS_BOTTOMxxxi=1
TCS_SCROLLOPPOSITExxxii=1

SysAnimate32
ACS_TIMERxxviii=1
ACS_AUTOPLAYxxix=1
ACS_TRANSPARENTxxxi=1
ACS_CENTERxxxii=1

RichEdit20A
ES_SELECTIONBARix=1
ES_VERTICALx=1
ES_NOIMExiii=1
ES_SELFIMExiv=1
ES_SAVESELxvii=1
ES_SUNKENxviii=1
ES_DISABLENOSCROLLxix=1
ES_WANTRETURNxx=1
ES_READONLYxxi=1
ES_NOHIDESELxxiv=1
ES_AUTOHSCROLLxxv=1
ES_AUTOVSCROLLxxvi=1
ES_PASSWORDxxvii=1
ES_RIGHTxxxi=1 And
xxxii=0
ES_CENTERxxxi=0 And
xxxii=1
ES_LEFTxxxi=0 And
xxxii=0
ES_NOOLEDRAGDROPxxix=1
ES_MULTILINExxx=1

SysDateTimePick32
DTS_RIGHTALIGNxxvii=1
DTS_APPCANPARSExxviii=1
DTS_SHOWNONExxxi=1
DTS_UPDOWNxxxii=1
DTS_SHORTDATEFORMATxxx=0
DTS_LONGDATEFORMATxxx=1
DTS_TIMEFORMATxxix=1

SysMonthCal32
MCS_NOTODAYxxix=1
MCS_WEEKNUMBERSxxx=1
MCS_MULTISELECTxxxi=1
MCS_DAYSTATExxxii=1

ComboBoxEx32
CBS_LOWERCASExviii=1
CBS_UPPERCASExix=1
CBS_DISABLENOSCROLLxxi=1
CBS_NOINTGRALHRIGHTxxii=1
CBS_HASSTRINGSxxiii=1
CBS_SORTxxiv=1
CBS_OEMCONVERTxxv=1
CBS_AUTOHSCROLLxxvi=1
CBS_DROPDOWNLISTxxxi=1 And
xxxii=1
CBS_DROPDOWNxxxi=1 And
xxxii=0
CBS_SIMPLExxxi=0 And
xxxii=1




object සදහා වන Styles හා ExStyles යෙදිය හැකි අගයන් ඉහත දක්වා තිබේ. මීගල‍ට ඇති 4 bytes මගින් දක්වනු ලබන්නේ එම object එක තිබෙන ස්ථානයේ x හා y ඛණ්ඩාංකයන් වේ. මිලග 4 bytes මගින් දක්වා ඇත්තේ එම object එකෙහි පළල හා උස වේ. මෙම අගයන් පික්සල්(px) මගින් දක්වා ඇත. මීලග 4 bytes මගින් පෙන්වනු ලබන්නේ Object එකෙහි ID එක වේ. මීලග‍ට ඇති 2 bytes මගින් 0xFFFF පෙන්නුම් කර ඇත්නම් එමගින් කියවෙනුයේ ඉන් පසුව ඇති 2 bytes මගින් Object class එකට අදාල අංකය දක්වා ඇති බවය. එසේ නොමැති නම් පසුව ඇත්තේ එම Object එකෙහි නම වේ.





Object class වලට අදාල අංක පහත ආකාර වේ.

0x0080BUTTON
0x0081TEXT BOX
0x0082STATIC
0x0083LIST BOX
0x0084SCROLLBAR
0x0085COMBO BOX

වෙනත් අංකයක් නම් එහි Object class එක ලෙස එම අංකයම යොදා ගනී.

මීලග‍ට ඇති 2 bytes මගින් 0xFFFF නිරෑපනය කර ඇත්නම් එමගින් කියවනුයේ මීලගට ඇති 2 bytes මගින් අදාල Object එක හා සම්බන්ධ කර ඇති resource එකක ID එකක් වේ.

උදා:- Object එක Icon එකක් යැයි සිතන්න එවිට එයට යෙදිය යුතු Icon එකෙහි ID එක මෙහි දක්වා ඇත.
එසේ නොමැති නම් මෙහි සදහන් වනුයේ text එකකි. එය Object එකට අදාල caption එකක් විය හැක.

මෙතනින් RT_DIALOG ගැන ලියල ඉවරයි. ලබන සතියේ ලියන්නේ RT_STRING ගැනයි.

No comments:

Post a Comment