IVsSolution.CreateProject(Guid, String, String, String, UInt32, Guid, IntPtr) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée ou ouvre un projet.
public:
int CreateProject(Guid % rguidProjectType, System::String ^ lpszMoniker, System::String ^ lpszLocation, System::String ^ lpszName, System::UInt32 grfCreateFlags, Guid % iidProject, [Runtime::InteropServices::Out] IntPtr % ppProject);
public int CreateProject (ref Guid rguidProjectType, string lpszMoniker, string lpszLocation, string lpszName, uint grfCreateFlags, ref Guid iidProject, out IntPtr ppProject);
abstract member CreateProject : Guid * string * string * string * uint32 * Guid * nativeint -> int
Public Function CreateProject (ByRef rguidProjectType As Guid, lpszMoniker As String, lpszLocation As String, lpszName As String, grfCreateFlags As UInteger, ByRef iidProject As Guid, ByRef ppProject As IntPtr) As Integer
Paramètres
- rguidProjectType
- Guid
[in] Identificateur unique pour le type de projet obtenu lorsque la fabrique de projets est inscrite. Peut être GUID_NULL, si une valeur lpszMoniker est spécifiée. Ce paramètre indique le type de projet à créer ou à ajouter à la solution. Si la valeur est GUID_NULL, l'environnement tente de déterminer le type de projet en fonction de l'extension du fichier.
- lpszMoniker
- String
[in] Pointeur vers le moniker du fichier. Si cette méthode est utilisée pour ouvrir un projet, spécifie le chemin d'accès au projet sur le disque (y compris le nom du projet et l'extension de fichier). Si la méthode est utilisée pour créer un projet, spécifie le chemin d'accès complet au fichier modèle cloné.
- lpszLocation
- String
[in] Pointeur vers le chemin d'accès spécifiant l'emplacement du nouveau projet. Ce paramètre est utilisé uniquement lorsque CPF_CLONEFILE est spécifié pour le grfCreateFlags paramètre ; sinon, il est null (pour un projet ouvert). Si le projet est un projet basé sur des répertoires, il s'agit du répertoire du projet. Le fichier projet du projet est enregistré dans ce dossier. Si le projet n'est pas basé sur des répertoires, cet emplacement est utilisé uniquement pour enregistrer le fichier projet et peut-être en tant que répertoire par défaut des éléments récemment créés. Le szLocation paramètre est défini de façon à inclure toujours la barre oblique de fin ( ) . Ensuite, la fabrique de projets n’a pas besoin de rechercher les chemins d’accès qui ressemblent à « C : " et «C:\MyProjects\Project1 » lors de la construction du nom de chemin d’accès du fichier projet.
- lpszName
- String
[in] Pointeur vers le nouveau nom du projet. Ce paramètre est utilisé uniquement lorsque CPF_CLONEFILE est spécifié pour le grfCreateFlags paramètre ; sinon, il est null (pour un projet ouvert). Le nom du projet n'inclut pas d'extension de fichier.
- grfCreateFlags
- UInt32
[in] Contrôle le mode de création ou d'ouverture d'un projet. Pour obtenir la liste des valeurs grfCreateFlags, consultez __VSCREATEPROJFLAGS.
- iidProject
- Guid
dans Identificateur d’interface du retourné ppProject . Cette valeur peut être iid_NULL pour ne spécifier aucun retour.
- ppProject
- IntPtr
[out, iid_is(iidProject)] Pointeur vers le nouveau projet.
Retours
Si la méthode réussit, retourne S_OK. En cas d'échec, retourne un code d'erreur.
Remarques
Signature COM
À partir de vsshell. idl :
HRESULT IVsSolution::CreateProject(
[in] REFGUID rguidProjectType,
[in] LPCOLESTR lpszMoniker,
[in] LPCOLESTR lpszLocation,
[in] LPCOLESTR lpszName,
[in] VSCREATEPROJFLAGS grfCreateFlags,
[in] REFIID iidProject,
[out, iid_is(iidProject)] void **ppProject
);
Si vous utilisez cette méthode pour créer un nouveau projet, fournissez des valeurs pour lpszMoniker , lpszLocation et lpszName . Si vous utilisez cette méthode pour ouvrir un projet existant, alors lpszLocation , et lpszName sont null .
Cette méthode gère la création et l’ouverture des fichiers projet uniquement et ne prend pas en charge l’ouverture d’un fichier solution, c’est-à-dire des fichiers avec une extension SLN, DSW ou VBG. L’ouverture de ces types de fichiers est gérée par la OpenSolutionFile méthode.
La création d’un nouveau projet s’effectue en clonant un projet existant qui est vide. L’environnement détermine quel VSPackage appelle cette méthode en fonction de l’extension de fichier.
Si CPF_CLONEFILE et CPF_OVERWRITE sont spécifiés, le projet remplace le fichier projet de destination. Si CPF_OVERWRITE n’est pas spécifié, une spécifique HRESULT , VS_E_PROJECTALREADYEXISTS , est retournée à partir de cette méthode. L’environnement affiche ensuite la boîte de dialogue ce projet existe déjà . Si l’utilisateur choisit de remplacer le fichier projet, l’environnement appelle CreateProject à nouveau la méthode, en spécifiant à la fois CPF_CLONEFILE et CPF_OVERWRITE .
Cette méthode peut afficher l’interface utilisateur, sauf si l' CPF_SILENT indicateur est spécifié. Cette méthode ne doit pas signaler les messages d’erreur à l’utilisateur. Cette méthode utilise les conventions de rapport d’erreurs standard de l’environnement. elle appelle la SetErrorInfo méthode pour enregistrer toute erreur qui se produit, puis retourne une erreur HRESULT . L’appelant appelle finalement la ReportErrorInfo méthode pour afficher le message d’erreur.
Lorsque cette méthode retourne une erreur HRESULT , elle appelle la SetErrorInfo méthode pour fournir des informations sur le package ou le projet qui n’a pas pu être chargé et pourquoi. L’appelant de cette méthode peut utiliser la ReportErrorInfo méthode pour afficher ce message d’erreur à l’utilisateur.