Rev 1418 | Rev 1438 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1418 | Rev 1435 | ||
---|---|---|---|
Line 43... | Line 43... | ||
43 | od_dir_default_pach equ dword [ebp+20] ; Default path of directory, |
43 | od_dir_default_pach equ dword [ebp+20] ; Default path of directory, |
44 | od_start_path equ dword [ebp+24] ; Location path to OpenDialog |
44 | od_start_path equ dword [ebp+24] ; Location path to OpenDialog |
45 | od_draw_window equ dword [ebp+28] ; Adress of procedure - draw_window |
45 | od_draw_window equ dword [ebp+28] ; Adress of procedure - draw_window |
46 | od_status equ dword [ebp+32] ; 0-Cancel, 1-Get path OK, 2-Use alternatives |
46 | od_status equ dword [ebp+32] ; 0-Cancel, 1-Get path OK, 2-Use alternatives |
47 | od_openfile_pach equ dword [ebp+36] ; Getting path to file |
47 | od_openfile_pach equ dword [ebp+36] ; Getting path to file |
- | 48 | od_filename_area equ dword [ebp+40] ; Adress of file name area |
|
- | 49 | od_filter_area equ dword [ebp+44] ; Adress of filter area |
|
48 | ;***************************************************************************** |
50 | ;***************************************************************************** |
49 | .init: |
51 | .init: |
50 | pusha |
52 | pusha |
51 | mcall 9, od_procinfo, -1 |
53 | mcall 9,od_procinfo,-1 |
52 | mov ebx,[ebx+30] |
54 | mov ebx,[ebx+30] |
Line 97... | Line 99... | ||
97 | test eax,eax |
99 | test eax,eax |
98 | jnz @f |
100 | jnz @f |
99 | mov esi,od_dir_default_pach ;communication_area_default_pach |
101 | mov esi,od_dir_default_pach ;communication_area_default_pach |
100 | @@: |
102 | @@: |
101 | call .copy |
103 | call .copy |
- | 104 | ;---------------------------------------------- |
|
- | 105 | ; copy file name to shared area |
|
- | 106 | cmp od_type,dword 1 |
|
- | 107 | jne .4 |
|
- | 108 | mov edi,od_com_area |
|
- | 109 | add edi,4096-256 |
|
102 | 110 | ||
- | 111 | mov esi,od_filename_area |
|
- | 112 | ; xor eax,eax |
|
- | 113 | ; mov al,[esi] |
|
- | 114 | ; test eax,eax |
|
- | 115 | test esi,esi |
|
- | 116 | jnz @f |
|
- | 117 | mov esi,.null |
|
- | 118 | @@: |
|
- | 119 | call .copy |
|
- | 120 | .4: |
|
- | 121 | ;---------------------------------------------- |
|
- | 122 | cmp od_type,dword 2 |
|
- | 123 | je @f |
|
- | 124 | call .get_filter_data |
|
- | 125 | @@: |
|
- | 126 | ;---------------------------------------------- |
|
103 | mov eax,od_com_area_name |
127 | mov eax,od_com_area_name |
104 | mov [start_open_dialog.parameter],eax |
128 | mov [start_open_dialog.parameter],eax |
Line 105... | Line 129... | ||
105 | 129 | ||
106 | mov eax,od_start_path |
130 | mov eax,od_start_path |
Line 122... | Line 146... | ||
122 | mov eax,od_com_area |
146 | mov eax,od_com_area |
123 | movzx ebx,word [eax] |
147 | movzx ebx,word [eax] |
124 | test ebx,ebx |
148 | test ebx,ebx |
125 | jz .still |
149 | jz .still |
126 | cmp ebx,3 |
150 | cmp ebx,3 |
127 | je .2 ;still |
151 | je .2 |
128 | cmp ebx,1 |
152 | cmp ebx,1 |
129 | jne .still |
153 | jne .still |
Line 130... | Line 154... | ||
130 | 154 | ||
131 | mov esi,od_com_area |
155 | mov esi,od_com_area |
132 | add esi,4 |
156 | add esi,4 |
133 | mov edi,od_openfile_pach ;string |
157 | mov edi,od_openfile_pach |
134 | call .copy |
158 | call .copy |
135 | mov od_status,1 |
159 | mov od_status,1 |
136 | mov esi,od_openfile_pach |
160 | mov esi,od_openfile_pach |
137 | mov edi,od_opendir_pach |
161 | mov edi,od_opendir_pach |
- | 162 | call .copy_dir_path |
|
- | 163 | ;---------------------------------------------- |
|
- | 164 | ; copy file name from shared area |
|
- | 165 | cmp od_type,dword 1 |
|
- | 166 | jne @f |
|
- | 167 | mov esi,od_com_area |
|
- | 168 | add esi,4096-256 |
|
- | 169 | mov edi,od_filename_area |
|
- | 170 | ; xor eax,eax |
|
- | 171 | ; mov al,[edi] |
|
- | 172 | ; test eax,eax |
|
- | 173 | test edi,edi |
|
- | 174 | jz @f |
|
- | 175 | call .copy |
|
- | 176 | @@: |
|
138 | call .copy_dir_path |
177 | ;---------------------------------------------- |
139 | jmp .3 ;kopen_1 |
178 | jmp .3 |
140 | .2: |
179 | .2: |
141 | mov od_status,0 |
180 | mov od_status,0 |
142 | jmp .3 ; still |
181 | jmp .3 |
143 | .1: |
182 | .1: |
144 | mov od_status,2 ; thread1 |
183 | mov od_status,2 |
145 | .3: |
184 | .3: |
146 | OpenDialog_exit |
185 | OpenDialog_exit |
- | 186 | ;---------------------------------------------- |
|
- | 187 | .null: |
|
- | 188 | dd 0 |
|
- | 189 | ;---------------------------------------------- |
|
- | 190 | .get_filter_data: |
|
- | 191 | mov edi,od_com_area |
|
- | 192 | test edi,edi |
|
- | 193 | jnz @f |
|
- | 194 | ; add esp,4 |
|
- | 195 | ; jmp still |
|
- | 196 | ret |
|
- | 197 | @@: |
|
- | 198 | add edi,4096+4 |
|
- | 199 | mov esi,od_filter_area |
|
- | 200 | mov ecx,[esi] |
|
- | 201 | test ecx,ecx |
|
- | 202 | jnz @f |
|
- | 203 | mov edi,od_com_area |
|
- | 204 | mov [edi+4096],dword 0 |
|
- | 205 | ret |
|
- | 206 | @@: |
|
- | 207 | inc ecx |
|
- | 208 | cld |
|
- | 209 | rep movsb |
|
- | 210 | mov edi,od_com_area |
|
- | 211 | mov [edi+4096],dword 1 |
|
- | 212 | ret |
|
147 | ;---------------------------------------------- |
213 | ;---------------------------------------------- |
148 | .copy: |
214 | .copy: |
149 | xor eax,eax |
215 | xor eax,eax |
150 | cld |
216 | cld |
151 | @@: |
217 | @@: |
Line 168... | Line 234... | ||
168 | cld |
234 | cld |
169 | lodsb |
235 | lodsb |
170 | stosb |
236 | stosb |
171 | test eax,eax |
237 | test eax,eax |
172 | jnz @b |
238 | jnz @b |
- | 239 | cmp od_type,dword 2 |
|
- | 240 | jne @f |
|
- | 241 | ret |
|
- | 242 | @@: |
|
173 | mov esi,edi |
243 | mov esi,edi |
174 | dec esi |
244 | dec esi |
175 | @@: |
245 | @@: |
176 | std |
246 | std |
177 | lodsb |
247 | lodsb |
178 | cmp al,'/' |
248 | cmp al,'/' |
179 | jnz @b |
249 | jnz @b |
Line 180... | Line -... | ||
180 | - | ||
181 | ; push esi |
- | |
182 | ; add esi,2 |
- | |
183 | ;; mov edi,ebx ;file_name |
- | |
184 | ;; xor ebx,ebx |
- | |
185 | ;@@: |
- | |
186 | ; cld |
- | |
187 | ; lodsb |
- | |
188 | ;; stosb |
- | |
189 | ; inc ebx |
- | |
190 | ; test eax,eax |
- | |
191 | ; jnz @b |
- | |
192 | ; pop esi |
- | |
193 | 250 | ||
194 | mov [esi+1], byte 0 |
251 | mov [esi+1],byte 0 |
195 | cld |
252 | cld |
196 | ret |
253 | ret |
197 | ;---------------------------------------------- |
254 | ;---------------------------------------------- |