⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controlpanel.lst

📁 在vb中镶入汇编、VC
💻 LST
📖 第 1 页 / 共 4 页
字号:
	TITLE	D:\VB Utility\Compiler\ControlPanel.frm
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
$$TYPES	SEGMENT BYTE USE32 'DEBTYP'
$$TYPES	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?Activate@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?RefreshList@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?SetGenerateListing@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?Substitute@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?Form_Load@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?cbSelectAll_Click@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?cbSelectNone_Click@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?cbContinue_Click@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?cbFinishCompile_Click@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?cbSkipLink_Click@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
;	COMDAT ?chkGenerateListing_Click@frmControlPanel@@AAGXXZ
text$1	SEGMENT PARA USE32 PUBLIC ''
text$1	ENDS
FLAT	GROUP _DATA, CONST, _BSS
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC	?Activate@frmControlPanel@@AAGXXZ		; frmControlPanel::Activate
EXTRN	@__vbaStrCopy:NEAR
EXTRN	___vba@001B0C60:BYTE
EXTRN	___vbaObjSet:NEAR
EXTRN	@__vbaI2I4:NEAR
EXTRN	___vbaHresultCheckObj:NEAR
EXTRN	___vba@001AF984:BYTE
EXTRN	@__vbaFreeObj:NEAR
EXTRN	___vba@001AF998:BYTE
EXTRN	___vba@001A0B98:BYTE
EXTRN	@__vbaStrMove:NEAR
EXTRN	@__vbaFreeStr:NEAR
EXTRN	___vbaChkstk:NEAR
EXTRN	___vbaExceptHandler:NEAR
EXTRN	__except_list:DWORD
;	COMDAT CONST
; File D:\VB Utility\Compiler\ControlPanel.frm
CONST	SEGMENT
$S34	DB	0dH, 00H
	DB	08H, 00H
	DD	FLAT:$L33
	DB	00H, 00H, 00H, 00H
	DD	FLAT:$L32
CONST	ENDS
;	COMDAT ?Activate@frmControlPanel@@AAGXXZ
text$1	SEGMENT
_Me$ = 8
_Activate$ = 20
_sCommandLine$ = 16
_sApplication$ = 12
_Activate$ = -24
_unnamed_var1$ = -28
_unnamed_var1$ = -32
_unnamed_var1$ = -48
_unnamed_var1$ = -64
_unnamed_var1$ = -68
_unnamed_var1$ = -72
$S45 = -84
$S46 = -88
__$SEHRec$ = -20
?Activate@frmControlPanel@@AAGXXZ PROC NEAR		; frmControlPanel::Activate, COMDAT

; 119  : Public Function Activate(ByRef sApplication As String, ByRef sCommandLine As String) As String

	push	ebp
	mov	ebp, esp
	sub	esp, 12					; 0000000cH
	push	OFFSET FLAT:___vbaExceptHandler
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	92					; 0000005cH
	pop	eax
	call	___vbaChkstk
	push	ebx
	push	esi
	push	edi
	mov	DWORD PTR __$SEHRec$[ebp+8], esp
	mov	DWORD PTR __$SEHRec$[ebp+12], OFFSET FLAT:$S34
	mov	DWORD PTR __$SEHRec$[ebp+16], 0
	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+4]
	mov	eax, DWORD PTR _Activate$[ebp]
	and	DWORD PTR [eax], 0

; 120  :     msTerminationMode = ""

	mov	edx, OFFSET FLAT:___vba@001B0C60
	mov	ecx, DWORD PTR _Me$[ebp]
	add	ecx, 56					; 00000038H
	call	@__vbaStrCopy

; 121  :     chkGenerateListing.Value = vbUnchecked

	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+772]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	xor	ecx, ecx
	call	@__vbaI2I4
	push	eax
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+228]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L259
	push	228					; 000000e4H
	push	OFFSET FLAT:___vba@001AF984
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -92+[ebp], eax
	jmp	SHORT $L260
$L259:
	and	DWORD PTR -92+[ebp], 0
$L260:
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj

; 122  :     tbApplication.Text = sApplication

	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+776]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	mov	eax, DWORD PTR _sApplication$[ebp]
	push	DWORD PTR [eax]
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+164]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L261
	push	164					; 000000a4H
	push	OFFSET FLAT:___vba@001AF998
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -96+[ebp], eax
	jmp	SHORT $L262
$L261:
	and	DWORD PTR -96+[ebp], 0
$L262:
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj

; 123  :     tbCommandLine.Text = sCommandLine

	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+788]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	mov	eax, DWORD PTR _sCommandLine$[ebp]
	push	DWORD PTR [eax]
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+164]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L263
	push	164					; 000000a4H
	push	OFFSET FLAT:___vba@001AF998
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -100+[ebp], eax
	jmp	SHORT $L264
$L263:
	and	DWORD PTR -100+[ebp], 0
$L264:
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj

; 124  :     Me.Show vbModal

	mov	DWORD PTR _unnamed_var1$[ebp+8], -2147352572 ; 80020004H
	mov	DWORD PTR _unnamed_var1$[ebp], 10	; 0000000aH
	mov	DWORD PTR _unnamed_var1$[ebp+8], 1
	mov	DWORD PTR _unnamed_var1$[ebp], 3
	push	16					; 00000010H
	pop	eax
	call	___vbaChkstk
	lea	esi, DWORD PTR _unnamed_var1$[ebp]
	mov	edi, esp
	movsd
	movsd
	movsd
	movsd
	push	16					; 00000010H
	pop	eax
	call	___vbaChkstk
	lea	esi, DWORD PTR _unnamed_var1$[ebp]
	mov	edi, esp
	movsd
	movsd
	movsd
	movsd
	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+688]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L265
	push	688					; 000002b0H
	push	OFFSET FLAT:___vba@001A0B98
	push	DWORD PTR _Me$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -104+[ebp], eax
	jmp	SHORT $L266
$L265:
	and	DWORD PTR -104+[ebp], 0
$L266:

; 125  :     sApplication = tbApplication.Text

	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+776]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+160]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L267
	push	160					; 000000a0H
	push	OFFSET FLAT:___vba@001AF998
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -108+[ebp], eax
	jmp	SHORT $L268
$L267:
	and	DWORD PTR -108+[ebp], 0
$L268:
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	DWORD PTR $S45[ebp], eax
	and	DWORD PTR _unnamed_var1$[ebp], 0
	mov	edx, DWORD PTR $S45[ebp]
	mov	ecx, DWORD PTR _sApplication$[ebp]
	call	@__vbaStrMove
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj

; 126  :     sCommandLine = tbCommandLine.Text

	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+788]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+160]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L269
	push	160					; 000000a0H
	push	OFFSET FLAT:___vba@001AF998
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -112+[ebp], eax
	jmp	SHORT $L270
$L269:
	and	DWORD PTR -112+[ebp], 0
$L270:
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	DWORD PTR $S46[ebp], eax
	and	DWORD PTR _unnamed_var1$[ebp], 0
	mov	edx, DWORD PTR $S46[ebp]
	mov	ecx, DWORD PTR _sCommandLine$[ebp]
	call	@__vbaStrMove
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj

; 127  :     Activate = msTerminationMode

	mov	eax, DWORD PTR _Me$[ebp]
	mov	edx, DWORD PTR [eax+56]
	lea	ecx, DWORD PTR _Activate$[ebp]
	call	@__vbaStrCopy
$L33:

; 128  : End Function

	push	$L276
	jmp	SHORT $L271
$L32:
	mov	eax, DWORD PTR __$SEHRec$[ebp+16]
	and	eax, 4
	test	eax, eax
	je	SHORT $L47
	lea	ecx, DWORD PTR _Activate$[ebp]
	call	@__vbaFreeStr
$L47:
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeStr
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj
	ret	0
$L271:
$L274:
	ret	0
$L276:
	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+8]
	mov	eax, DWORD PTR _Activate$[ebp]
	mov	ecx, DWORD PTR _Activate$[ebp]
	mov	DWORD PTR [eax], ecx
	mov	eax, DWORD PTR __$SEHRec$[ebp+16]
	mov	ecx, DWORD PTR __$SEHRec$[ebp]
	mov	DWORD PTR fs:__except_list, ecx
	pop	edi
	pop	esi
	pop	ebx
	leave
	ret	16					; 00000010H
?Activate@frmControlPanel@@AAGXXZ ENDP			; frmControlPanel::Activate
text$1	ENDS
PUBLIC	?RefreshList@frmControlPanel@@AAGXXZ		; frmControlPanel::RefreshList
EXTRN	___vba@001AF9AC:BYTE
EXTRN	___vbaForEachCollObj:NEAR
EXTRN	___vba@001BADBC:BYTE
EXTRN	___vba@001AF9C0:BYTE
EXTRN	___vba@001AF9D4:BYTE
EXTRN	___vbaNextEachCollObj:NEAR
EXTRN	___vbaFreeObjList:NEAR
;	COMDAT CONST
; File D:\VB Utility\Compiler\ControlPanel.frm
CONST	SEGMENT
$S67	DB	06H, 00H
	DB	04H, 00H
	DB	00H, 00H, 00H, 00H
	DD	FLAT:$L65
	DD	FLAT:$L66
CONST	ENDS
;	COMDAT ?RefreshList@frmControlPanel@@AAGXXZ
text$1	SEGMENT
_Me$ = 8
_aCComponent$ = -20
_unnamed_var1$ = -24
_unnamed_var1$ = -28
_unnamed_var1$ = -32
_unnamed_var1$ = -48
_unnamed_var1$ = -52
_unnamed_var1$ = -56
_unnamed_var1$ = -60
_unnamed_var1$ = -64
_unnamed_var1$ = -68
_unnamed_var1$ = -72
_unnamed_var1$ = -76
$S69 = -84
$S76 = -88
__$SEHRec$ = -16
?RefreshList@frmControlPanel@@AAGXXZ PROC NEAR		; frmControlPanel::RefreshList, COMDAT

; 130  : Private Sub RefreshList()

	push	ebp
	mov	ebp, esp
	push	ecx
	push	ecx
	push	OFFSET FLAT:___vbaExceptHandler
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	100					; 00000064H
	pop	eax
	call	___vbaChkstk
	push	ebx
	push	esi
	push	edi
	mov	DWORD PTR __$SEHRec$[ebp+8], esp
	mov	DWORD PTR __$SEHRec$[ebp+12], OFFSET FLAT:$S67

; 131  :     Dim aCComponent As VBComponent
; 132  :     lstProjectMembers.Clear

	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _Me$[ebp]
	call	DWORD PTR [eax+784]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+488]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L285
	push	488					; 000001e8H
	push	OFFSET FLAT:___vba@001AF9AC
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -92+[ebp], eax
	jmp	SHORT $L286
$L285:
	and	DWORD PTR -92+[ebp], 0
$L286:
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj

; 113  : Option Explicit

	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	mov	eax, DWORD PTR _Me$[ebp]
	mov	eax, DWORD PTR [eax+52]
	mov	ecx, DWORD PTR _Me$[ebp]
	mov	ecx, DWORD PTR [ecx+52]
	mov	ecx, DWORD PTR [ecx]
	push	eax
	call	DWORD PTR [ecx+80]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L287
	push	80					; 00000050H
	push	OFFSET FLAT:___vba@001BADBC
	mov	eax, DWORD PTR _Me$[ebp]
	push	DWORD PTR [eax+52]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -96+[ebp], eax
	jmp	SHORT $L288
$L287:
	and	DWORD PTR -96+[ebp], 0
$L288:
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	eax, DWORD PTR [eax]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	DWORD PTR [eax+140]
	fnclex
	mov	DWORD PTR _unnamed_var1$[ebp], eax
	cmp	DWORD PTR _unnamed_var1$[ebp], 0
	jge	SHORT $L289
	push	140					; 0000008cH
	push	OFFSET FLAT:___vba@001AF9C0
	push	DWORD PTR _unnamed_var1$[ebp]
	push	DWORD PTR _unnamed_var1$[ebp]
	call	___vbaHresultCheckObj
	mov	DWORD PTR -100+[ebp], eax
	jmp	SHORT $L290
$L289:
	and	DWORD PTR -100+[ebp], 0
$L290:
	mov	eax, DWORD PTR _unnamed_var1$[ebp]
	mov	DWORD PTR $S76[ebp], eax
	and	DWORD PTR _unnamed_var1$[ebp], 0
	push	DWORD PTR $S76[ebp]
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	call	___vbaObjSet
	push	eax
	lea	eax, DWORD PTR _aCComponent$[ebp]
	push	eax
	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	push	OFFSET FLAT:___vba@001AF9D4
	call	___vbaForEachCollObj
	mov	DWORD PTR $S69[ebp], eax
	lea	ecx, DWORD PTR _unnamed_var1$[ebp]
	call	@__vbaFreeObj
	jmp	$L71
$L70:

; 133  :     For Each aCComponent In mIDE.ActiveVBProject.VBComponents
; 134  :         Select Case aCComponent.Type

	lea	eax, DWORD PTR _unnamed_var1$[ebp]
	push	eax
	mov	eax, DWORD PTR _aCComponent$[ebp]
	mov	eax, DWORD PTR [eax]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -