IVsSolution2.CreateProject(Guid, String, String, String, UInt32, Guid, IntPtr) Метод

Определение

Создает или открывает проект.Creates or opens a project.

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

Параметры

rguidProjectType
Guid

[in] Уникальный идентификатор типа проекта, полученного при регистрации фабрики проекта.[in] Unique identifier for the project type obtained when the project factory is registered. Может быть GUID_NULL, если указано значение для lpszMoniker .Can be GUID_NULL, if a value for lpszMoniker is specified. Этот параметр указывает тип проекта, чтобы создать или добавить в решение.This parameter indicates the type of project to create or to add to the solution. Если значение GUID_NULL, среда пытается определить тип проекта по расширению файла.If the value is GUID_NULL, then the environment attempts to determine the project type based on the extension of the file.

lpszMoniker
String

[in] Указатель на моникер файла.[in] Pointer to the file moniker. Если этот метод используется для открытия проекта, необходимо указать путь к проекту на диске (включая имя проекта и расширение файла).If this method is used to open a project, then specify the path to the project on disk (including project name and file extension). Если метод используется для создания проекта, необходимо указать полный путь к файлу шаблона, который будет клонирован.If the method is being used to create a project, then specify the full path to the template file that will be cloned.

lpszLocation
String

[in] Указатель на путь, определяющий расположение нового проекта.[in] Pointer to the path specifying the location for the new project. Этот параметр используется только в том случае, если для grfCreateFlags параметра указан параметр CPF_CLONEFILE; в противном случае — null (для открытого проекта).This parameter is used only when CPF_CLONEFILE is specified for the grfCreateFlags parameter; otherwise it is null (for open project). Если проект основан на использовании каталогов, это каталог для проекта.If the project is a directory-based project, then this is the directory for the project. Файл проекта сохраняется в этом каталоге.The project file for the project is saved in this directory. Если проект не основан на использовании каталога, это расположение используется только для сохранения файла проекта и, возможно, в качестве каталога по умолчанию для вновь создаваемых элементов.If the project is not directory-based, then this location is used only to save the project file and perhaps as the default directory for newly created items. szLocationПараметр определен так, чтобы всегда включался Замыкающая косая черта ( ) .The szLocation parameter is defined to always include the trailing slash (). Затем фабрике проектов не нужно искать пути, имеющие вид "C: " и" C:\MyProjects\Project1 "при создании пути к файлу проекта.Then, the project factory does not have to look for paths that look like "C:" versus "C:\MyProjects\Project1" when constructing the path name of the project file.

lpszName
String

[in] Указатель на имя нового проекта.[in] Pointer to the new project name. Этот параметр используется только в том случае, если для grfCreateFlags параметра указан параметр CPF_CLONEFILE; в противном случае — null (для открытого проекта).This parameter is used only when CPF_CLONEFILE is specified for the grfCreateFlags parameter; otherwise it is null (for open project). Имя проекта не включает расширение файла.The project name does not include a file extension.

grfCreateFlags
UInt32

[in] Управляет способом создания или открытия проекта.[in] Controls how a project is created or opened. Список значений grfCreateFlags см. в __VSCREATEPROJFLAGS.For a list of grfCreateFlags values, see __VSCREATEPROJFLAGS.

iidProject
Guid

окне Идентификатор интерфейса возвращаемого объекта ppProject .[in] Interface identifier of the returned ppProject. Это значение может быть iid_NULL, чтобы задать отсутствие возврата.This value can be iid_NULL to specify no return.

ppProject
IntPtr

[out, iid_is(iidProject)] Указатель на созданный проект.[out, iid_is(iidProject)] Pointer to the newly created project.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK.If the method succeeds, it returns S_OK. В противном случае функция возвращает код ошибки.If it fails, it returns an error code.

Реализации

Комментарии

Подпись COMCOM Signature

Из всшелл. IDL:From vsshell.idl:

HRESULT IVsSolution2::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  
);  

Если вы используете этот метод для создания нового проекта, укажите значения lpszMoniker , lpszLocation и lpszName .If you are using this method to create a new project, then provide values for lpszMoniker, lpszLocation, and lpszName. Если этот метод используется для открытия существующего проекта, то lpszLocation и lpszName имеет значение null .If you are using this method to open an existing project, then lpszLocation, and lpszName are null.

Этот метод обрабатывает создание и открытие только файлов проекта и не поддерживает открытие файла решения, то есть файлов с расширением SLN, DSW или ВБГ.This method handles creating and opening project files only and does not support the opening of a solution file, that is, files with a SLN, DSW, or VBG extension. Открытие этих типов файлов осуществляется с помощью OpenSolutionFile метода.Opening of these file types is handled by the OpenSolutionFile method.

Создание нового проекта выполняется путем клонирования существующего проекта, который является пустым.Creating a new project is accomplished by cloning an existing project that is empty. Среда определяет, какой IVsPackage вызов этого метода основан на расширении файла.The environment determines which IVsPackage calls this method based on the file extension.

Если CPF_CLONEFILE указаны и CPF_OVERWRITE , и, проект перезаписывает целевой файл проекта.If both CPF_CLONEFILE and CPF_OVERWRITE are specified, the project overwrites the destination project file. Если CPF_OVERWRITE не указан, VS_E_PROJECTALREADYEXISTS в этом методе возвращается определенный HRESULT,.If CPF_OVERWRITE is not specified, a specific HRESULT, VS_E_PROJECTALREADYEXISTS, is returned from this method. Среда отобразит диалоговое окно этот проект уже существует .The environment then displays the This Project Already Exists dialog box. Если пользователь выбирает перезапись файла проекта, среда вызывает <xref:Microsoft.VisualStudio.Package.ProjectFactory.CreateProject%2A> метод еще раз, указывая CPF_CLONEFILE и CPF_OVERWRITE .If the user chooses to overwrite the project file, the environment calls the <xref:Microsoft.VisualStudio.Package.ProjectFactory.CreateProject%2A> method again, specifying both CPF_CLONEFILE and CPF_OVERWRITE.

Этот метод может отображать пользовательский интерфейс, если не CPF_SILENT указан флаг.This method can display the user interface unless the CPF_SILENT flag is specified. Этот метод не должен сообщать пользователю сообщения об ошибках.This method should not report error messages to the user. В этом методе используются стандартные обозначения среды для создания отчетов об ошибках. Он вызывает SetErrorInfo метод для записи любой возникающей ошибки, а затем возвращает ошибку HRESULT.This method uses the standard error-reporting conventions of the environment; it calls the SetErrorInfo method to record any error that occurs, and then returns an error HRESULT. Вызывающий объект в конечном итоге вызывает ReportErrorInfo метод для вывода сообщения об ошибке.The caller ultimately calls the ReportErrorInfo method to display the error message.

Когда этот метод возвращает ошибку HRESULT, он вызывает SetErrorInfo метод для предоставления сведений о том, какой пакет VSPackage или проект не удалось загрузить и почему.When this method returns an error HRESULT, it calls the SetErrorInfo method to supply information about which VSPackage or project could not be loaded and why. Вызывающий объект этого метода может использовать ReportErrorInfo метод, чтобы отобразить это сообщение об ошибке пользователю.The caller of this method can use the ReportErrorInfo method to show this error message to the user.

Применяется к