Форум программистов, компьютерный форум CyberForum.ru

Нужна информация по shlobj.h - C++

Восстановить пароль Регистрация
 
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
13.02.2012, 10:48     Нужна информация по shlobj.h #1
Где можно почитать информацию и посмотреть исходники как оно работает?
C++
1
#include<shlobj.h>
Добавлено через 10 минут
Укажите что в коде открывает контекстное меню и что за что отвечает!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//#include <windows.h>
//#include <shlobj.h> //SHLDialog
//#include <stdio.h>
// 
//#pragma comment (lib, "winmm.lib")
// 
//BOOL SelectFile(HWND hWnd, char * szPath, const char * szTitle)
//{
//        BOOL bRet = FALSE;
//        ShowWindow(hWnd,SW_HIDE);
//        LPCITEMIDLIST lpItemDList;
//        BROWSEINFO bi = 
//        {
//                NULL, 
//                NULL, 
//                NULL,
//                szTitle,
//                BIF_DONTGOBELOWDOMAIN   |
//                BIF_BROWSEINCLUDEFILES,
//                NULL,
//                NULL,
//                0
//        };
//        if((lpItemDList=SHBrowseForFolder(&bi)))
//        {
//                if((bRet = SHGetPathFromIDList(lpItemDList, szPath)))
//                        GetShortPathName((LPCTSTR)szPath,szPath,strlen(szPath));
//                else
//                        szPath[0] = '\0';
//        }
//        ShowWindow(hWnd,SW_SHOW);
//        return bRet;
//}
// 
//int main()
//{
//        char szPath[MAX_PATH] = {0};
//        char mciStr[MAX_PATH] = {0};
//        HWND hWnd = GetForegroundWindow();
//        if(!SelectFile(hWnd, szPath, "Выберите media-файл"))
//                printf("Error open path %s\n",strerror(GetLastError()));
//        else
//        {
//                printf("Selected path %s\n",szPath);
//                sprintf(mciStr,"play %s wait",szPath);
//                if(mciSendString(mciStr, NULL, 0, NULL))
//                        printf("mciSendString - PLAY\n");
//                else
//                        printf("PlaySound - ERROR %s\n",strerror(GetLastError()));
//        }
//        system("pause");
//        return 0;
//}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 10:48     Нужна информация по shlobj.h
Посмотрите здесь:

C++ Нужна информация
Нужна еще одна информация C++
Шаблоны классов в языке с++.Нужна доступная информация. C++
Нужна библиотека для работы с трафиком(а точнее информация о пакетах) C++
C++ Написать программу- вводная информация в файле in.txt, выходная информация в out.txt
Нужна информация или мануал по системным функциям C++
Нужна информация про классы C++
Нужна информация про "Репозитории обьектов" у кого есть какая инфа? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 13:09     Нужна информация по shlobj.h #2
vpnwz151, а почему в том топике не написал вопрос, я же спрашивал что именно не понятно?

Цитата Сообщение от vpnwz151 Посмотреть сообщение
контекстное меню
- какое контекстное меню?!Его там попросту нет. Окошко выбора файла(это ты под меню подразумевал) вызывает данная функция
Цитата Сообщение от vpnwz151 Посмотреть сообщение
(lpItemDList=SHBrowseForFolder(&bi)
- как видишь в функции 1-н входной lpItemDList - это поля структуры
Цитата Сообщение от vpnwz151 Посмотреть сообщение
BROWSEINFO bi
, которую мы заполнили здесь

Цитата Сообщение от vpnwz151 Посмотреть сообщение
BROWSEINFO bi =
// * * * *{
// * * * * * * * *NULL,
// * * * * * * * *NULL,
// * * * * * * * *NULL,
// * * * * * * * *szTitle,
// * * * * * * * *BIF_DONTGOBELOWDOMAIN * |
// * * * * * * * *BIF_BROWSEINCLUDEFILES,
// * * * * * * * *NULL,
// * * * * * * * *NULL,
// * * * * * * * *0
// * * * *};
szTitle - строковая переменная, которая содержит себе надпись в окне, вот попробуй изменить эту наддпись
Цитата Сообщение от vpnwz151 Посмотреть сообщение
"Выберите media-файл"
на "блаблабла" и посмотри как это отразится на программе. Как видишь возвращаемым значением SHBrowseForFolder является
Цитата Сообщение от vpnwz151 Посмотреть сообщение
LPCITEMIDLIST lpItemDList;
. Чтобы не нагружать тебя скажу что это своеобразный уникальный номер файла в системе, по этому номеру функцией SHGetPathFromIDList в коде это здесь
Цитата Сообщение от vpnwz151 Посмотреть сообщение
if((bRet = SHGetPathFromIDList(lpItemDList, szPath)))
можно узнать какой путь соответсвует этому файлу. Путь возвращается в szPath. Теперь в коже ты видишь ещё ожну функцию, спросишь зачем ведь мы путь нашли?Отвечаю SHGetPathFromIDList извлечёт "длинный" путь к файлу, а он иногда содержит русские названия или пробелы, а их часто не воспринимают функции организации файлового потока, поэтому с помощью GetShortPathName переводим путь в его DOS эквивалент(короткое имя). Чтобы ты понял - вот тебе пример
C:\Мои документы\test.txt - длинное имя
С:\МОИДОК~1\test.txt - короткое имя
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.02.2012, 11:24  [ТС]     Нужна информация по shlobj.h #3
Спасибо большое. Помог очень!
Yandex
Объявления
15.02.2012, 11:24     Нужна информация по shlobj.h
Ответ Создать тему
Опции темы

Текущее время: 15:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru