begin process at 2012 05 28 14:44:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Shell

 > 

BROWSEINFO & ITEMIDLIST


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

BROWSEINFO & ITEMIDLIST

vendredi 12 janvier 2007 à 21:33:39 | BROWSEINFO & ITEMIDLIST

yann_lo_san

Salut,
J'aimerais initialiser le membre pidlRoot de la structure BROWSEINFO pour utiliser avec la fonction SHBrowseForFolder. (Qui devrais mettre un répertoire choisit au root de la liste des repertoires)

LPITEMIDLIST lpItemRoot = 0;  // Devra contenir l'ID du repertoire
IMalloc *pMalloc = 0;
::SHGetMalloc(&pMalloc);            
// Accède à l'allocateur du système

// ICI : Comment accéder à la définition de l'ITEMIDLIST

pMalloc->Free(lpItem);                  // Libère l'item
pMalloc->Release();                      
// Plus besoin de ce pointeur 

// Ensuite
/*BROWSEINFO::*/browseInfo.pidlRoot = lpItemRoot;


Sur cppFrance tous les codes mettent le root à NULL.
Sur MSDN, peu d'infos sur ce sujet.
Si vous avez des infos, merci d'avance...

samedi 13 janvier 2007 à 11:01:35 | Re : BROWSEINFO & ITEMIDLIST

vicenzo

Membre Club
Réponse acceptée !
Si ton problème est d'initialiser d'ouvrir la boite de dialog sur un répertoire de ton choix, tu peux utiliser le code suivant qui utilise un callback pour sélectionner le réportoire :



static char path[1024];

int CALLBACK browse_folder_callback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
    switch (uMsg)
    {
        case BFFM_INITIALIZED:
        {
            SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM) path);
            break;
        }
    }

    return FALSE;
}

int browse_folder(char *folder, size_t *size) /* in -> root, out -> répertoire choisi */
{
    BROWSEINFO bi;
    LPITEMIDLIST pidl;

    if (!folder)
        return 0;

    strncpy(path, folder, sizeof(path)-1);
    memset(&bi, 0, sizeof(bi));

    bi.lpszTitle    = "Choisissez un répertoire";
    bi.lpfn        = browse_folder_callback;

       pidl = SHBrowseForFolder(&bi);
   
    if (pidl)
    {
        IMalloc * imalloc = 0;

            if ( SHGetPathFromIDList (pidl, path))
            {
            strcat(path, "\\");
            strncpy(folder, path, size);
        }

        if (SUCCEEDED(SHGetMalloc(&imalloc)))
        {
            imalloc->Free (pidl);
            imalloc->Release();
        }
    }

    return 1;
}

J'espère que ca peut aider...


samedi 13 janvier 2007 à 15:00:40 | Re : BROWSEINFO & ITEMIDLIST

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
SELECTEUR DOSSIER REDUIT (WIN32)
http://www.cppfrance.com/code.aspx?ID=36936

ciao...
BruNews, MVP VC++
samedi 13 janvier 2007 à 17:18:56 | Re : BROWSEINFO & ITEMIDLIST

yann_lo_san

Parfait.
Merci pour vos réponses...



Cette discussion est classée dans : root, browseinfo, pidlroot, itemidlist, lpitemroot


Répondre à ce message

Sujets en rapport avec ce message

URGENT : ITEMIDLIST et autres [ par Shouwi ] Bonjours, j'ai un probleme qui m'enerve à un haut point, j'expose le probleme : je me sert d'unGetOpenFileName(LPOPENFILENAME)afin de selectionner plu [MFC] Utilisation de la classe CTreeCtrl, niveau dans l'arbre [ par karine3884 ] Bonjour, Je programme sous Visual Studio C++ 6.0. J'utilise un CtreeCtrl pour créer un arbre (une arborescence). J'aimerai ajouter un item au même ni Demande de passwd root [ par jcqguill ] Salut j'ai développé un programme graphique avec qt designer qui utilise les SOCK_RAW. Il faut donc que je sois root pour la lancer. J'aimerai savoir nouveau dossier avec SHBrowseForFolder(BROWSEINFO) [ par progrima ] salut!!! j'utilise la fonction SHBrowseForFolder(BROWSEINFO bi) pour avoir une boite de dialogue qui me permet de séléctionner un dossier de mon disqu Evenement souris sous linux [ par bordeaux ] Bonjour a tous,j'ai cree une application qui permet de recuperer la position de la souris, et aussi de la deplacer.Mais je n'arrive pas a envoyer un c Evenement souris sous Linux [ par bordeaux ] Bonjour a tous,j'ai cree une application qui permet de recuperer la position de la souris, et aussi de la deplacer.Mais je n'arrive pas a envoyer un c compilation de boost [ par neophenix83 ] Bonjour,Je voudrais compiler et installer boost pour le faire fonctionner avec Visual studio 200( (et donc VC8).Seulement, je pense que je ne pige pas Pointer dans arbre binaire [ par laurent57150 ] Bonjour j'essaye d'ecrire un programme utilisant un arbre binaire!Le probleme c'est que pour remplir mon arbre j'utilise une fonction recursive mais a comment passer root par programme C [ par timy94 ] Bonjour à tous.Voila mon problème. Comment passer root (en connaissant le mot de passe root bien sûr!) par programme C sans taper le mot de passe dans Problème rédéfinition non désiré d'une chaine [ par Fituza ] Bonjour,désirant analyser une partie du registre pour une application, je recontre un problème récurant: le chemin d'accés est modifié sans que je ne


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,486 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales