Code:
Type tagPIFEX ' L = 0171h Îñíîâíîé ðàçäåë Reserved As Byte ' 0000h Íå èñïîëüçóåòñÿ CheckSum As Byte ' 0001h 0078h Êîíòðîëüíàÿ ñóììà  Windows 95/98 - âñåãäà 78h, â îñòàëüíûõ ÎÑ - çíà÷åíèå ìåíÿåòñÿ. Íèêîãäà íå ïðîâåðÿåòñÿ. WindowTitle As String * 30 ' 0002h Çàãîëîâîê îêíà OEM. Äîïîëíÿåòñÿ ïðîáåëàìè äî 30 ñèìâîëîâ. MaxMem As Word ' 0020h 0280h Ìàêñèìàëüíûé îáúåì îñíîâíîé ïàìÿòè â êèëîáàéòàõ (3.1) MinMem As Word ' 0022h 0000h Ìèíèìàëüíûé îáúåì îñíîâíîé ïàìÿòè â êèëîáàéòàõ Path As Asciiz * 63 ' 0024h Èìÿ çàïóñêàåìîãî ôàéëà áåç ïàðàìåòðîâ. Ìîæåò ñîäåðæàòü ïîëíûé ïóòü.  êàâû÷êè íå çàêëþ÷àåòñÿ. Çàâåðøàåòñÿ íóëåâûì ñèìâîëîì. Êîäèðîâêà OEM. msFlags As Word ' 0063h 0010h = CloseOnExit StartUpDir As Asciiz * 64 ' 0065h Ðàáî÷èé êàòàëîã.  êàâû÷êè íå çàêëþ÷àåòñÿ. Çàâåðøàåòñÿ íóëåâûì ñèìâîëîì. Êîäèðîâêà OEM. CmdLine As Asciiz * 64 ' 00A5h Ñòðîêà ïàðàìåòðîâ. Çàâåðøàåòñÿ íóëåâûì ñèìâîëîì. Êîäèðîâêà OEM. ' Èñïîëüçóåòñÿ òîëüêî åñëè îòñóòñòâóåò ðàçäåë, ñîäåðæàùèé ñòðîêó ïàðàìåòðîâ äëÿ äàííîé ÎÑ. ScreenMode As Byte ' 00E5h 00h â 32-ðàçðÿäíûõ ÎÑ, 7Fh â Wind ows 3.X. TextPages As Byte ' 00E6h 01h Êîëè÷åñòâî âûäåëåííûõ òåêñòîâûõ ñòðàíèö âèäåîïàìÿòè. Íå èñïîëüçóåòñÿ. InterruptMin As Byte ' 00E7h 00h Ïåðâîå èñïîëüçóåìîå ïðåðûâàíèå. Íå èñïîëüçóåòñÿ. InterruptMax As Byte ' 00E8h FFh Ïîñëåäíåå èñïîëüçóåìîå ïðåðûâàíèå. Íå èñïîëüçóåòñÿ. Rows As Byte ' 00E9h 19h Âûñîòà ýêðàíà â ñèìâîëàõ. Íå èñïîëüçóåòñÿ. Columns As Byte ' 00EAh 50h Øèðèíà ýêðàíà â ñèìâîëàõ. Íå èñïîëüçóåòñÿ. xPos As Byte ' 00EBh 00h Ïîçèöèÿ îêíà ïî ãîðèçîíòàëè. Íå èñïîëüçóåòñÿ. yPos As Byte ' 00ECh 00h Ïîçèöèÿ îêíà ïî âåðòèêàëè. Íå èñïîëüçóåòñÿ. SysMem As Word ' 00EDh 0007h Íîìåð ïîñëåäíåé òåêñòîâîé âèäåîñòðàíèöû. Íå èñïîëüçóåòñÿ. SharedPrgPath As String * 64 ' 00EFh Shared program path. Íå èñïîëüçóåòñÿ. SharedPrgDataPath As String * 64 ' 003Fh Shared program data file uFlags As Word ' 016Fh 0000h â Windows 95/98, 20E0h â Windows NT/2000 ' 0020h Èñïîëüçîâàòü ñîïðîöåññîð (NT) ' 0040h Îñòàíàâëèâàòüñÿ â ôîíîâîì ðåæèìå (NT) ' 0080h Ïðÿìàÿ çàïèñü òåêñòà íà ýêðàí (NT) ' 2000h Èñïîëüçîâàòü ïîäìåíó âåêòîðîâ ïðåðûâàíèé (NT) End Type Type tagPIFEX_Title Signature As Asciiz * 16 ' 0000h Ïîäïèñü ðàçäåëà OffSetNextPart As Word ' 0010h Ñìåùåíèå çàãîëîâêà ñëåäóþùåãî ðàçäåëà îò íà÷àëà ôàéëà.  ïîñëåäíåì ðàçäåëå ïðèíèìàåò çíà÷åíèå FFFFh. OffSetDataPart As Word ' 0012h Ñìåùåíèå íà÷àëà äàííûõ ðàçäåëà îò íà÷àëà ôàéëà S X 95 NT LenPart As Word ' 0014h Äëèíà ðàçäåëà â áàéòàõ End Type Type tagWINDOWS386_TITLE Signature As Asciiz * 16 ' 0000h Ïîäïèñü ðàçäåëà OffSetNextPart As Word ' 0010h Ñìåùåíèå çàãîëîâêà ñëåäóþùåãî ðàçäåëà îò íà÷àëà ôàéëà.  ïîñëåäíåì ðàçäåëå ïðèíèìàåò çíà÷åíèå FFFFh. OffSetDataPart As Word ' 0012h Ñìåùåíèå íà÷àëà äàííûõ ðàçäåëà îò íà÷àëà ôàéëà S X 95 NT LenPart As Word ' 0014h Äëèíà ðàçäåëà â áàéòàõ End Type Type tagWINDOWS386 ' WINDOWS 386 3.0 0068h MaxMem As Word ' 0000h 0280h Ìàêñèìàëüíûé îáúåì îñíîâíîé ïàìÿòè â êèëîáàéòàõ, êîòîðûé ìîæåò çàíÿòü ïðèëîæåíèå X 95 NT ' Äëÿ 32-ðàçðÿäíûõ ÎÑ àâòî - 640 è áîëåå. ReqMem As Word ' 0002h 0000h Çàïðàøèâàåìûé îáúåì îñíîâíîé ïàìÿòè â êèëîáàéòàõ ' Äëÿ 32-ðàçðÿäíûõ ÎÑ àâòî - 0 ActivePriority As Word ' 0004h 0064h Àêòèâíûé ïðèîðèòåò Äèàïàçîí çíà÷åíèé: 1-100 ? BkgPriority As Word ' 0006h 0032h Ôîíîâûé ïðèîðèòåò MaxEMS As Word ' 0008h FFFFh Ìàêñèìàëüíûé îáúåì ïàìÿòè EMS â êèëîáàéòàõ (16384), àâòî - FFFFh ReqEMS As Word ' 000Ah 0000h Çàïðàøèâàåìûé îáúåì ïàìÿòè EMS. Ìàêñèìàëüíîå çíà÷åíèå - 16384, àâòî - 0. MaxXMS As Word ' 000Ch FFFFh Ìàêñèìàëüíûé îáúåì ïàìÿòè XMS â êèëîáàéòàõ, êîòîðûé ìîæåò çàíÿòü ïðèëîæåíèå. Ìàêñèìàëüíîå çíà÷åíèå - 16384, àâòî - FFFFh. ReqXMS As Word ' 000Eh 0000h Çàïðàøèâàåìûé îáúåì ïàìÿòè XMS. Ìàêñèìàëüíîå çíà÷åíèå - 16384, àâòî - 0. Flags1 As Dword ' 0010h 00021002h Flags2 As Word ' 0014h 001Fh ' 0001h Ýìóëèðîâàòü âèäåî ROM ' 0002h Íå ïðîâåðÿòü ïîðòû: òåêñò ' 0004h Íå ïðîâåðÿòü ïîðòû: ãðàôèêà íèçêîãî ðàçðåøåíèÿ ' 0008h Íå ïðîâåðÿòü ïîðòû: ãðàôèêà âûñîêîãî ðàçðåøåíèÿ ' 0010h Âèäåîïàìÿòü: òåêñò Reserved As Word ' 0016h HotKeyScanCode As Word ' 0018h 0000h Ñêàí-êîä êëàâèøè áûñòðîãî âûçîâà. X 95 NT Cì. Microsoft KB Q37617. HotKeyMod As Word ' 001Ah 0000h 0003h Êëàâèøà-ìîäèôèêàòîð áûñòðîãî âûçîâà: Shift ' 0004h Êëàâèøà-ìîäèôèêàòîð áûñòðîãî âûçîâà: Ctrl ' 0008h Êëàâèøà-ìîäèôèêàòîð áûñòðîãî âûçîâà: Alt UseHotKey As Word ' 001Ch 0000h 000Fh = Ïðèìåíÿòü êëàâèøó áûñòðîãî âûçîâà ExtScanCode As Word ' 001Eh 0000h 0001h = Ïðèçíàê ðàñøèðåííîãî ñêàí-êîäà êëàâèøè áûñòðîãî âûçîâà Uknown1 As Word ' 0020h 0000h, 0064h â Windows NT Íåèçâåñòíî (NT) Uknown2 As Word ' 0022h 0000h, 0032h â Windows NT Íåèçâåñòíî (NT) Uknown As Dword ' 0024h CmdLine As Asciiz * 64 ' 0028h Ñòðîêà ïàðàìåòðîâ. Çàâåðøàåòñÿ íóëåâûì ñèìâîëîì. Êîäèðîâêà OEM. ' Èìååòñÿ îøèáêà, èç-çà êîòîðîé ñòðîêà ïàðàìåòðîâ ñîõðàíÿåòñÿ â ' êîäèðîâêå ANSI, êðîìå òîãî, â Windows 95/98 ïðîãðàììå ïåðåäàåòñÿ ' ýòî çíà÷åíèå, åùå ðàç ïðåîáðàçîâàííîå â êîäèðîâêó ANSI. End Type Type tagWINDOWSVMM_TITLE Signature As Asciiz * 16 ' 0000h Ïîäïèñü ðàçäåëà OffSetNextPart As Word ' 0010h Ñìåùåíèå çàãîëîâêà ñëåäóþùåãî ðàçäåëà îò íà÷àëà ôàéëà.  ïîñëåäíåì ðàçäåëå ïðèíèìàåò çíà÷åíèå FFFFh. OffSetDataPart As Word ' 0012h Ñìåùåíèå íà÷àëà äàííûõ ðàçäåëà îò íà÷àëà ôàéëà S X 95 NT LenPart As Word ' 0014h Äëèíà ðàçäåëà â áàéòàõ End Type Type tagWINDOWSVMM ' WINDOWS VMM 4.0 L = 01ACh Reserved1 As String * 88 ' 0000h 00h Íåèçâåñòíî IconFile As Asciiz * 80 ' 0058h PIFMGR.DLL - Èìÿ ôàéëà, ñîäåðæàùåãî çíà÷îê ' Êîäèðîâêà ANSI, äëèííîå èìÿ áåç êàâû÷åê, ìîæåò ñîäåðæàòü ïîëíûé ïóòü, çàâåðøàåòñÿ íóëåâûì ñèìâîëîì. IconNum As Word ' 00A8h 0000h Íîìåð çíà÷êà. Ïåðâûé çíà÷îê â ôàéëå èìååò íîìåð 0. Flags1 As Word ' 00AAh 0002h Áèòîâàÿ ìàñêà. Uknown01 As String * 10 ' 00ACh 00h Íåèçâåñòíî CPUWait As Word ' 00B6h 0032h Ïðèîðèòåò ×èñëî îò 0 äî 100, 0 - ìàêñèìàëüíûé ïðèîðèòåò, 100 - ìèíèìàëüíûé. Flags2 As Word ' 00B8h 0001h Áèòîâàÿ ìàñêà. Uknown2 As String * 8 ' 00BAh 00h Íåèçâåñòíî RowsInFullScreen As Word ' 00C2h 0000h Êîëè÷åñòâî òåêñòîâûõ ñòðîê â îêíå 95 Àâòî - 0, èëè ñîîòâåòñòâóþùåå ÷èñëî (25, 43 èëè 50). Flags3 As Word ' 00C4h 0001h Áèòîâàÿ ìàñêà. Uknown02 As Word ' 00C6h 0000h Íåèçâåñòíî Uknown03 As Word ' 00C8h 0005h Íåèçâåñòíî Uknown04 As Word ' 00CAh 0019h Íåèçâåñòíî Uknown05 As Word ' 00CCh 0003h Íåèçâåñòíî Uknown06 As Word ' 00CEh 00C8h Íåèçâåñòíî Uknown07 As Word ' 00D0h 03E8h Íåèçâåñòíî Uknown08 As Word ' 00D2h 0002h Íåèçâåñòíî Uknown09 As Word ' 00D4h 000Ah Íåèçâåñòíî Flags4 As Word ' 00D6h 0001h Áèòîâàÿ ìàñêà Uknown10 As String * 6 ' 00D8h 00h Íåèçâåñòíî FontType As Word ' 00DEh 001Ch Áèòîâàÿ ìàñêà. Uknown11 As Word ' 00E0h 0000h Íåèçâåñòíî FontBitMapX As Word ' 00E2h Ðàçìåð òåêóùåãî øðèôòà ïî ãîðèçîíòàëè (òîëüêî äëÿ ðàñòðîâûõ øðèôòîâ). ' Àâòî èëè TrueType - 0000h, ðàñòðîâûé øðèôò - ðàçìåð ïî ãîðèçîíòàëè â ïèêñåëàõ. FontBitMapY As Word ' 00E4h 0000h Ðàçìåð òåêóùåãî øðèôòà ïî âåðòèêàëè. ' Àâòî - ëþáîå çíà÷åíèå, èíà÷å ðàçìåð ïî âåðòèêàëè â ïèêñåëàõ. FontTrueTypeX As Word ' 00E6h 0000h Ðàçìåð òåêóùåãî øðèôòà ïî ãîðèçîíòàëè. ' Àâòî - ëþáîå çíà÷åíèå, èíà÷å ðàçìåð ïî ãîðèçîíòàëè â ïèêñåëàõ. FontTrueTypeY As Word ' 00E8h 0000h Ðàçìåð òåêóùåãî øðèôòà ïî âåðòèêàëè. ' Àâòî - ëþáîå çíà÷åíèå, èíà÷å ðàçìåð ïî âåðòèêàëè â ïèêñåëàõ. BitmapFont As Asciiz * 32 ' 00EAh Terminal Íàçâàíèå ðàñòðîâîãî øðèôòà. Íå èñïîëüçóåòñÿ, çàêàí÷èâàåòñÿ íóëåâûì ñèìâîëîì. TrueType As Asciiz * 32 ' 010Ah Lucida Console Íàçâàíèå øðèôòà TrueType. Íå èñïîëüçóåòñÿ, çàêàí÷èâàåòñÿ íóëåâûì ñèìâîëîì. Uknown15 As Word ' 012Ah 04E3h â Windows NT/2000, 0000h â Windows 95/98 Íåèçâåñòíî Flags6 As Word ' 012Ch 0003h Áèòîâàÿ ìàñêà. ' 0001h Íåèçâåñòíî ' 0002h Ïîêàçûâàòü ïàíåëü èíñòðóìåíòîâ 95 NT RestoreParams As Word ' 012Eh 0000h 0001h = Íå âîññòàíàâëèâàòü ïàðàìåòðû ïðè çàïóñêå WndCharWidth As Word ' 0130h 0000h ?? Ðàçìåð ýêðàíà ïî ãîðèçîíòàëè â ñèìâîëàõ (95). Ïîñëå ïåðâîãî çàïóñêà ïðîãðàììû çíà÷åíèå ñòàíîâèòñÿ ðàâíûì 80. WndCharHeight As Word ' 0132h 0000h ?? Ðàçìåð ýêðàíà ïî âåðòèêàëè â ñèìâîëàõ (95). Ïîñëå ïåðâîãî çàïóñêà ïðîãðàììû çíà÷åíèå ñòàíîâèòñÿ ðàâíûì 25. WndClientWidth As Word ' 0134h 0000h Ðàçìåð êëèåíòñêîé îáëàñòè îêíà ïî ãîðèçîíòàëè (95).  ïèêñåëàõ. WndClientHeight As Word ' 0136h 0000h Ðàçìåð êëèåíòñêîé îáëàñòè îêíà ïî âåðòèêàëè (95).  ïèêñåëàõ. WndWidth As Word ' 0138h 0000h Ðàçìåð îêíà ïî ãîðèçîíòàëè (95).  ïèêñåëàõ. WndHeight As Word ' 013Ah 0000h Ðàçìåð îêíà ïî âåðòèêàëè (95).  ïèêñåëàõ. Uknown16 As Word ' 013Ch 0016h Íåèçâåñòíî FlagsForLastState As Word ' 013Eh 0000h Áèòîâàÿ ìàñêà. ' 0002h Ïðè ïîñëåäíåì çàïóñêå îêíî áûëî ðàçâåðíóòî (95) ' Åñëè äàííîå çíà÷åíèå íå óñòàíîâëåíî, çíà÷åíèå ïî ñìåùåíèþ 0140h ' íå èíòåðïðåòèðóåòñÿ. LastState As Word ' 0140h 0001h Íå ÿâëÿåòñÿ áèòîâîé ìàñêîé. Uknown17 As Word ' 0142h FFFFh Íåèçâåñòíî (95) Uknown18 As Word ' 0144h FFFFh Íåèçâåñòíî (95) WndRightExt As Word ' 0146h FFFFh Ïîëîæåíèå ïðàâîé ãðàíèöû îêíà â ðàçâåðíóòîì ñîñòîÿíèè (95) '  ïèêñåëàõ, åñëè äàííîå çíà÷åíèå ìåíüøå èëè ðàâíî ïîëîæåíèþ ëåâîé ãðàíèöû, ' è çíà÷åíèÿ ïî ñìåùåíèÿì 013Eh, 0140h óêàçûâàþò íà òî, ÷òî îêíî áûëî ðàçâåðíóòî, ' ñ÷èòàåòñÿ, ÷òî ïàðàìåòðû îêíà íå ñîõðàíÿëèñü, è èñïîëüçóþòñÿ çíà÷åíèÿ ïî óìîë÷àíèþ. WndBottomExt As Word ' 0148h FFFFh Ïîëîæåíèå íèæíåé ãðàíèöû îêíà â ðàçâåðíóòîì ñîñòîÿíèè (95) '  ïèêñåëàõ, åñëè äàííîå çíà÷åíèå ìåíüøå èëè ðàâíî ïîëîæåíèþ âåðõíåé ãðàíèöû, ' è çíà÷åíèÿ ïî ñìåùåíèÿì 013Eh, 0140h óêàçûâàþò íà òî, ÷òî îêíî áûëî ðàçâåðíóòî, ' ñ÷èòàåòñÿ, ÷òî ïàðàìåòðû îêíà íå ñîõðàíÿëèñü, è èñïîëüçóþòñÿ çíà÷åíèÿ ïî óìîë÷àíèþ. WndLeft As Word ' 014Ah 0000h Ïîëîæåíèå ëåâîé ãðàíèöû îêíà (95).  ïèêñåëàõ. WndTop As Word ' 014Ch 0000h Ïîëîæåíèå âåðõíåé ãðàíèöû îêíà (95).  ïèêñåëàõ. WndRight As Word ' 014Eh 0000h Ïîëîæåíèå ïðàâîé ãðàíèöû îêíà â íîðìàëüíîì ñîñòîÿíèè (95) '  ïèêñåëàõ, åñëè äàííîå çíà÷åíèå ìåíüøå èëè ðàâíî ïîëîæåíèþ ëåâîé ãðàíèöû, ' è çíà÷åíèÿ ïî ñìåùåíèÿì 013Eh, 0140h óêàçûâàþò íà òî, ÷òî îêíî íå áûëî ðàçâåðíóòî, ' ñ÷èòàåòñÿ, ÷òî ïàðàìåòðû îêíà íå ñîõðàíÿëèñü, è èñïîëüçóþòñÿ çíà÷åíèÿ ïî óìîë÷àíèþ. WndBottom As Word ' 0150h 0000h Ïîëîæåíèå íèæíåé ãðàíèöû îêíà â íîðìàëüíîì ñîñòîÿíèè (95) '  ïèêñåëàõ, åñëè äàííîå çíà÷åíèå ìåíüøå èëè ðàâíî ïîëîæåíèþ âåðõíåé ãðàíèöû, ' è çíà÷åíèÿ ïî ñìåùåíèÿì 013Eh, 0140h óêàçûâàþò íà òî, ÷òî îêíî íå áûëî ðàçâåðíóòî, ' ñ÷èòàåòñÿ, ÷òî ïàðàìåòðû îêíà íå ñîõðàíÿëèñü, è èñïîëüçóþòñÿ çíà÷åíèÿ ïî óìîë÷àíèþ Uknown19 As Dword ' 0152h 00000000h Íåèçâåñòíî BatPath As Asciiz * 80 ' 0156h Èìÿ bat-ôàéëà. Êîäèðîâêà OEM, ìîæåò ñîäåðæàòü ïîëíûé ïóòü, ' äëèííîå èìÿ, âêëþ÷àþùåå ïðîáåëû, äîëæíî áûòü çàêëþ÷åíî â êàâû÷êè, çàâåðøàåòñÿ íóëåâûì ñèìâîëîì. EnvSize As Word ' 01A6h 0000h Îáúåì ïàìÿòè äëÿ ïåðåìåííûõ ñðåäû. Àâòî - 0, èíà÷å îáúåì ïàìÿòè â êèëîáàéòàõ, max - 4096. DPMISize As Word ' 01A8h 0000h Îáúåì ïàìÿòè DPMI Àâòî - 0, èíà÷å îáúåì ïàìÿòè â êèëîáàéòàõ, max - 16384. Uknown20 As Word ' 01AAh 0001h Íåèçâåñòíî End Type '--------------------------------------------------------------------------------------------------------------------- Function CreatePIF (szPIFPath As String, szExePath As String, szCmdLine As String, szWorkDir As String, _ szIconPath As String, ByVal iIcon As Dword, _ szWindowTitle As String, ByVal FullScreen As Dword, ByVal FontType As Dword, _ ByVal FntWidth As Dword, ByVal FntHeight As Dword) As Dword Dim PIFEX As Local tagPIFEX ' Ïîëÿ PIF-ôàéëà Dim PIFEX_TITLE As Local tagPIFEX_TITLE Dim WINDOWS386 As Local tagWINDOWS386 Dim WINDOWS386_TITLE As Local tagWINDOWS386_TITLE Dim WINDOWSVMM As Local tagWINDOWSVMM Dim WINDOWSVMM_TITLE As Local tagWINDOWSVMM_TITLE Dim hPifFile As Local Dword ' åãî handle Dim szPifData As Local String ' âíóòðåííîñòè Dim i As Local Dword Dim j As Local Dword '============================ PIFEX.CheckSum = &H78 PIFEX.maxMem = &H0280 PIFEX.msFlags = &H10 ' Close On Exit PIFEX.WindowTitle = szWindowTitle GetShortPathName ByVal StrPtr(szExePath), PIFEX.Path, SizeOf(PIFEX.Path) GetShortPathName ByVal StrPtr(szWorkDir), ByVal VarPtr(PIFEX.StartUpDir), SizeOf(PIFEX.StartUpDir) PIFEX.CmdLine = szCmdLine PIFEX.TextPages = 1 PIFEX.InterruptMax = &HFF PIFEX.Rows = 25 PIFEX.Columns = 80 PIFEX.SysMem = 7 ' If IsNT Then PIFEX.uFlags = &H20E0 PIFEX_TITLE.Signature = "MICROSOFT PIFEX" + Chr$(0) PIFEX_TITLE.OffSetNextPart = Len(PIFEX) + Len(PIFEX_TITLE) PIFEX_TITLE.OffSetDataPart = 0 PIFEX_TITLE.LenPart = Len(PIFEX) '============================ WINDOWS386_TITLE.Signature = "WINDOWS 386 3.0" WINDOWS386_TITLE.OffSetNextPart = SizeOf(tagPIFEX) + SizeOf(tagPIFEX_TITLE) + _ SizeOf(tagWINDOWS386_TITLE) + SizeOf(tagWINDOWS386) WINDOWS386_TITLE.OffSetDataPart = SizeOf(tagPIFEX) + SizeOf(tagPIFEX_TITLE) +SizeOf(tagWINDOWS386_TITLE) WINDOWS386_TITLE.LenPart = SizeOf(tagWINDOWS386) '============================ WINDOWS386.MaxMem = 640 WINDOWS386.ReqMem = 0 WINDOWS386.ActivePriority = 100 ' 0004h 0064h Àêòèâíûé ïðèîðèòåò Äèàïàçîí çíà÷åíèé: 1-100 ? WINDOWS386.BkgPriority = 50 ' 0006h 0032h Ôîíîâûé ïðèîðèòåò WINDOWS386.MaxEMS = &HFFFF& WINDOWS386.ReqEMS = 0 WINDOWS386.MaxXMS = &HFFFF& WINDOWS386.ReqXMS = 0 %WINDOWS386_AllowExitWhenActive = &H00000001& ' Ðàçðåøèòü âûõîä, êîãäà àêòèâíà, Áèò îòêëþ÷àåòñÿ, êîãäà óñòàíîâëåí ìàêñèìàëüíûé ïðèîðèòåò. %WINDOWS386_ContinueWorkInBackhground = &H00000002& ' Ïðîäîëæåíèå ðàáîòû â ôîíîâîì ðåæèìå %WINDOWS386_FullScreenMode = &H00000008& ' Ïîëíîýêðàííûé ðåæèì ' Reserved by program %WINDOWS386_AltTab = &H00000020& ' Íå èñïîëüçîâàòü Alt+Tab %WINDOWS386_AltEsc = &H00000040& ' Íå èñïîëüçîâàòü Alt+Esc %WINDOWS386_AltSpace = &H00000080& ' Íå èñïîëüçîâàòü Alt+Space %WINDOWS386_AltEnter = &H00000100& ' Íå èñïîëüçîâàòü Alt+Enter %WINDOWS386_AltPrtSc = &H00000200& ' Íå èñïîëüçîâàòü Alt+PrtSc %WINDOWS386_PrtSc = &H00000400& ' Íå èñïîëüçîâàòü PrtSc %WINDOWS386_CtrlEsc = &H00000800& ' Íå èñïîëüçîâàòü Ctrl+Esc %WINDOWS386_CalcDelay = &H00001000& ' Îïðåäåëÿòü âðåìÿ ïðîñòîÿ %WINDOWS386_NoHMA = &H00002000& ' Íå èñïîëüçîâàòü HMA %WINDOWS386_UseHotKey = &H00004000& ' Èñïîëüçîâàòü áûñòðûé âûçîâ %WINDOWS386_QuickInsert = &H00020000& ' Áûñòðàÿ âñòàâêà %WINDOWS386_ProtectMemory = &H00080000& ' Çàùèòà ïàìÿòè %WINDOWS386_Minimize = &H00100000& ' Ñâåðíóòîå îêíî %WINDOWS386_Maximize = &H00200000& ' Ðàçâåðíóòîå îêíî %WINDOWS386_MSDOS = &H00800000& ' Ðåæèì MS-DOS (95) %WINDOWS386_HideWindows = &H01000000& ' Íå äàâàòü îáíàðóæèòü Windows (95) %WINDOWS386_DontOfferMSDOS = &H04000000& ' Íå ïðåäëàãàòü àâòîìàòè÷åñêè ïåðåõîä â ðåæèì MS-DOS (95) %WINDOWS386_NoWarningMSDOS = &H10000000& ' Íå ïðåäóïðåæäàòü ïåðåä ïåðåõîäîì â ðåæèì MS-DOS (95) ' 00021002 WINDOWS386.Flags1 = %WINDOWS386_ContinueWorkInBackhground + %WINDOWS386_CalcDelay + %WINDOWS386_AltEnter ' + %WINDOWS386_AltTab + %WINDOWS386_CtrlEsc If FullScreen Then WINDOWS386.Flags1 = WINDOWS386.Flags1 + %WINDOWS386_FullScreenMode WINDOWS386.Flags2 = &H001F WINDOWS386.HotKeyScanCode = 0 WINDOWS386.HotKeyMod = 0 WINDOWS386.UseHotKey = 0 WINDOWS386.ExtScanCode = 0 WINDOWS386.Uknown1 = 0 ' 0000h, 0064h â Windows NT WINDOWS386.Uknown2 = 0 ' 0000h, 0032h â Windows NT WINDOWS386.Uknown = 0 WINDOWS386.CmdLine = szCmdLine '============================ WINDOWSVMM_TITLE.Signature = "WINDOWS VMM 4.0" WINDOWSVMM_TITLE.OffSetNextPart = &HFFFF WINDOWSVMM_TITLE.OffSetDataPart = Len(PIFEX) + Len(PIFEX_TITLE) + Len(WINDOWS386_TITLE) + Len(WINDOWS386) + Len(WINDOWSVMM_TITLE) WINDOWSVMM_TITLE.LenPart = Len(WINDOWSVMM) If szIconPath = "" Then WINDOWSVMM.IconFile = "PIFMGR.DLL" Else _ GetShortPathName ByVal StrPtr(szIconPath), WINDOWSVMM.IconFile, SizeOf(WINDOWSVMM.IconFile) WINDOWSVMM.IconNum = iIcon %WINDOWSVMM_ContinueWorkInBackground = &H0002& ' Ïðîäîëæåíèå ðàáîòû â ôîíîâîì ðåæèìå %WINDOWSVMM_NoWarningWhenExit = &H0010& ' Íå ïðåäóïðåæäàòü ïðè çàâåðøåíèè %WINDOWSVMM_NoSplash = &H0020& ' Íå èñïîëüçîâàòü Çàñòàâêó ' 0002 WINDOWSVMM.Flags1 = %WINDOWSVMM_ContinueWorkInBackground ' + %WINDOWSVMM_NoWarningWhenExit WINDOWSVMM.CPUWait = 50 ' 100 - CPUWaitInBackground %WINDOWSVMM_EmulateVideoROM = &H0001& ' Ýìóëèðîâàòü âèäåî-ÏÇÓ %WINDOWSVMM_AllocVideoDynam = &H0080& ' Íå âûäåëÿòü âèäåîïàìÿòü äèíàìè÷åñêè %WINDOWSVMM_FullScreen = &H0100& ' Ïîëíîýêðàííûé ðåæèì ' 0001 WINDOWSVMM.Flags2 = %WINDOWSVMM_EmulateVideoROM If FullScreen Then WINDOWSVMM.Flags2 = WINDOWSVMM.Flags2 + %WINDOWSVMM_FullScreen WINDOWSVMM.RowsInFullScreen = 25 %WINDOWSVMM_QuickInsert = &H0001& ' Áûñòðàÿ âñòàâêà %WINDOWSVMM_AltTab = &H0020& ' Íå èñïîëüçîâàòü Alt+Tab %WINDOWSVMM_AltEsc = &H0040& ' Íå èñïîëüçîâàòü Alt+Esc %WINDOWS386_AltSpace = &H0080& ' Íå èñïîëüçîâàòü Alt+Space %WINDOWS386_AltEnter = &H0100& ' Íå èñïîëüçîâàòü Alt+Enter %WINDOWS386_AltPrtSc = &H0200& ' Íå èñïîëüçîâàòü Alt+PrtSc %WINDOWS386_PrtSc = &H0400& ' Íå èñïîëüçîâàòü PrtSc %WINDOWS386_CtrlEsc = &H0800& ' Íå èñïîëüçîâàòü Ctrl+Esc WINDOWSVMM.Flags3 = %WINDOWS386_AltEnter + %WINDOWS386_AltTab + %WINDOWS386_CtrlEsc WINDOWSVMM.Uknown03 = &H0005& WINDOWSVMM.Uknown04 = &H0019& WINDOWSVMM.Uknown05 = &H0003& WINDOWSVMM.Uknown06 = &H00C8& WINDOWSVMM.Uknown07 = &H03E8& WINDOWSVMM.Uknown08 = &H0002& WINDOWSVMM.Uknown09 = &H000A& %WINDOWSVMM_DontUseMiceForSelection = &H0001& ' Íå èñïîëüçîâàòü ìûøü äëÿ âûäåëåíèÿ %WINDOWSVMM_ExclusiveMouseUsage = &H0002& ' Ìîíîïîëüíîå èñïîëüçîâàíèå ìûøè ' 0001 WINDOWSVMM.Flags4 = %WINDOWSVMM_DontUseMiceForSelection %WINDOWSVMM_UseBitmapFont = &H0004& ' Èñïîëüçîâàòü ðàñòðîâûå øðèôòû %WINDOWSVMM_UseTrueType = &H0008& ' Èñïîëüçîâàòü TrueType øðèôòû %WINDOWSVMM_Auto = &H0010& ' Àâòîìàòè÷åñêè âûáèðàòü ðàçìåð øðèôòà %WINDOWSVMM_CurrentBitmapFont = &H0400& ' Òåêóùèé øðèôò - ðàñòðîâûé %WINDOWSVMM_CurrentTrueTypeFont = &H0800& ' Òåêóùèé øðèôò - TrueType If FontType = 0 Then WINDOWSVMM.FontType = %WINDOWSVMM_UseBitmapFont + %WINDOWSVMM_CurrentBitmapFont Else _ WINDOWSVMM.FontType = %WINDOWSVMM_UseTrueType + %WINDOWSVMM_CurrentTrueTypeFont WINDOWSVMM.FontBitMapX = FntWidth WINDOWSVMM.FontBitMapY = FntHeight WINDOWSVMM.FontTrueTypeX = FntWidth WINDOWSVMM.FontTrueTypeY = FntHeight WINDOWSVMM.BitmapFont = "Terminal" WINDOWSVMM.TrueType = "Courier New" ' If IsNT Then WINDOWSVMM.Uknown15 = &H04E3& %WINDOWSVMM_Uknown = &H0001& ' Íåèçâåñòíî %WINDOWSVMM_ShowToolBar = &H0002& ' Ïîêàçûâàòü ïàíåëü èíñòðóìåíòîâ WINDOWSVMM.Flags6 = %WINDOWSVMM_Uknown WINDOWSVMM.RestoreParams = &H0001& ' non-standart 0001h = Íå âîññòàíàâëèâàòü ïàðàìåòðû ïðè çàïóñêå WINDOWSVMM.WndCharWidth = 80 WINDOWSVMM.WndCharHeight = 25 WINDOWSVMM.WndClientWidth = 0 WINDOWSVMM.WndClientHeight = 0 WINDOWSVMM.WndWidth = 0 WINDOWSVMM.WndHeight = 0 WINDOWSVMM.Uknown16 = &H0016& WINDOWSVMM.FlagsForLastState = &H0000& ' Áèòîâàÿ ìàñêà. ' 0002h Ïðè ïîñëåäíåì çàïóñêå îêíî áûëî ðàçâåðíóòî (95) ' Åñëè äàííîå çíà÷åíèå íå óñòàíîâëåíî, çíà÷åíèå ïî ñìåùåíèþ 0140h ' íå èíòåðïðåòèðóåòñÿ. WINDOWSVMM.LastState = &H0001& ' Íå ÿâëÿåòñÿ áèòîâîé ìàñêîé. ' Çíà÷åíèå 0002h èíòåðïðåòèðóåòñÿ êàê ðàçâåðíóòîå îêíî. ' 0001h Ïðè ïîñëåäíåì çàïóñêå îêíî áûëî íîðìàëüíîãî ðàçìåðà (95) ' 0002h Ïðè ïîñëåäíåì çàïóñêå îêíî áûëî ñâåðíóòî (95) ' 0003h Ïðè ïîñëåäíåì çàïóñêå îêíî áûëî ðàçâåðíóòî (95) WINDOWSVMM.Uknown17 = &HFFFF& WINDOWSVMM.Uknown18 = &HFFFF& WINDOWSVMM.WndRightExt = &HFFFF& WINDOWSVMM.WndBottomExt = &HFFFF& WINDOWSVMM.WndLeft = 0 ' Áåñïîëåçíî WINDOWSVMM.WndTop = 0 WINDOWSVMM.WndRight = 0 WINDOWSVMM.WndBottom = 0 WINDOWSVMM.Uknown20 = 1 szPifData = PIFEX + PIFEX_TITLE + WINDOWS386_TITLE + WINDOWS386 + WINDOWSVMM_TITLE + WINDOWSVMM hPifFile = CreateFile (ByVal StrPtr(szPIFPath), %GENERIC_WRITE, 0, ByVal 0, %CREATE_ALWAYS, %FILE_ATTRIBUTE_HIDDEN, ByVal 0) If hPifFile <> %INVALID_HANDLE_VALUE Then i = Len(szPifData) If WriteFile (hPifFile, ByVal StrPtr(szPifData), i, j, ByVal 0) = 0 Then Else If j = i Then Function = 1 CloseHandle hPifFile End If End Function
Leave a comment: