04.12.2006, 11:17
общий
это ответ
Здравствуйте, Сергей Скобин!
ofn0 OPENFILENAME <size OPENFILENAME,NULL,NULL \
ofs strFilter0,0,0,1,ofs BufNameFile,MAX_PATH \
0,0,NULL,0 \
OFN_PATHMUSTEXIST or OFN_HIDEREADONLY or \
OFN_OVERWRITEPROMPT or OFN_FILEMUSTEXIST \
0,0,ofs strDefExt \
NULL,NULL,NULL>
Приложение:
ofn0 OPENFILENAME <size OPENFILENAME,NULL,NULL \ ofs strFilter0,0,0,1,ofs BufNameFile,MAX_PATH \ 0,0,NULL,0 \ OFN_PATHMUSTEXIST or OFN_HIDEREADONLY or \ OFN_OVERWRITEPROMPT or OFN_FILEMUSTEXIST \ 0,0,ofs strDefExt \ NULL,NULL,NULL>Cmd_OpenFile: ;=8a push esi edi ebx mov eax, [ini] mov ebx, [(t Object eax).IniData] mov esi, ofs ofn0 mov eax, [(t inid ebx).LastComeFile] cmp [b eax], 0 jnz m108a_00 mov [BufNameFile], 0 jmp m108a_11m108a_00: Call lstrcpy, ofs BufNameFile, [(t inid ebx).LastComeFile]m108a_11: mov [(t OPENFILENAME esi).lpstrInitialDir], ofs BufDir mov [(t OPENFILENAME esi).lpstrFile], ofs BufNameFile Call GetOpenFileName, esi or eax,eax jz m908a;-- Сохраняю путь в INI-данных sub eax, eax mov ax, [(t OPENFILENAME esi).nFileOffset] inc eax push eax Call GlobalAlloc, GPTR, eax pop ecx or eax, eax jz m108a_0 xchg edi, eax push ecx Call lstrcpyn, edi, [(t OPENFILENAME esi).lpstrFile], ecx pop eax mov [b edi+eax-1], 0 mov eax, [(t inid ebx).LastComeDir] or eax, eax jz m108a_1 Call GlobalFree, eaxm108a_1: mov [(t inid ebx).LastComeDir], edi Call lstrcpy, ofs BufDir, edim108a_0:;-- Сохраняю файл в INI-данных sub eax, eax mov ax, [(t OPENFILENAME esi).nFileOffset] mov edi, [(t OPENFILENAME esi).lpstrFile] add edi, eax Call lstrlen, edi or eax, eax jz m108a_2 inc eax Call GlobalAlloc, GPTR, eax or eax, eax jz m108a_2 Call lstrcpy, eax, edi or eax, eax jz m108a_2 xchg edi, eax mov eax, [(t inid ebx).LastComeFile] or eax, eax jz m108a_3 Call GlobalFree, eaxm108a_3: mov [(t inid ebx).LastComeFile], edim108a_2:m908a: pop ebx edi esi jmp ExitMsgOk