Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MASM32:: SHBrowseForFolder sulutions

583
23 апреля 2003 года
#define
150 / / 03.12.2002
Помогите пожалуйста..
Необходим диалог выбора директории - BrowseForFolder.
Если использовать invoke BrowseForFolder, hWnd, ADDR PATH, ADDR title, ADDR subtitle, то все работает нормально.
Но необходимо использовать SHBrowseForFolder, которая в качестве параметра принимает указатель на структуру BROWSEINFO. Это выгоднее, т.к. можно указать ulFlags и др. нужные вещи в структуре.
Только вот SHBrowseForFolder почему-то ведет себя странно, не работает. Код компилится, но при вызове диалога происходит ошибка в странице памяти. Объясните почему и как исправить?.. Вот код:
Код:
.const
MAX_PATH equ 260  ;размерность пути

.data?
PATH db MAX_PATH dup(?)  ;путь выбранной директории

.data
tstring, "Browse For Folder",0  ;загловок будующего диалога
.....................
.....................
WndProc proc hWnd:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD
LOCAL brinfo:BROWSEINFO  ;струткра

    ;заполнение структуры
    push hWnd
    pop brinfo.hwndOwner
    mov brinfo.lpszTitle, offset tstring
    mov brinfo.pszDisplayName, offset PATH
    mov brinfo.ulFlags, BIF_RETURNONLYFSDIRS
    mov brinfo.lpfn, NULL
   
    .IF uMsg==WM_CREATE
        invoke Button,ADDR BRWSMsg,hWnd,50,50,100,20,IDC_BROWSE   ;создаю кнопку
    .ELSEIF uMsg == WM_COMMAND
        .IF wParam == ID_BROWSE  ;кнопка нажата
            mov PATH, 0
            invoke SHBrowseForFolder, ADDR brinfo  ;вызов диалога
    .ELSEIF uMsg==WM_DESTROY
        invoke PostQuitMessage, NULL
    .ELSE
        invoke DefWindowProc, hWnd, uMsg, wParam, lParam
    .ENDIF
    ret
WndProc endp

И еще вопрос по онному диалогу.. в винампе в диалоге добавления директории помимо стандартных элементов есть еще checkbox - как его можно добавить в диалог?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог