IVsSolution2.CreateProject(Guid, String, String, String, UInt32, Guid, IntPtr) メソッド

定義

プロジェクトを作成または開きます。

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

からプロジェクトファクトリが登録されたときに取得されるプロジェクトの種類を表す一意の識別子。 の値が指定されている場合は、GUID_NULL でき lpszMoniker ます。 このパラメーターは、ソリューションに対して作成または追加するプロジェクトの種類を示します。 値が GUID_NULL 場合、環境はファイルの拡張子に基づいてプロジェクトの種類を決定しようとします。

lpszMoniker
String

からファイルモニカーへのポインター。 このメソッドを使用してプロジェクトを開く場合は、ディスク上のプロジェクトへのパスを指定します (プロジェクト名とファイル拡張子を含む)。 メソッドを使用してプロジェクトを作成する場合は、複製されるテンプレートファイルへの完全パスを指定します。

lpszLocation
String

から新しいプロジェクトの場所を指定するパスへのポインター。 このパラメーターは、パラメーターに CPF_CLONEFILE が指定されている場合にのみ使用されます grfCreateFlags 。それ以外の場合は null (open project の場合) です。 プロジェクトがディレクトリベースのプロジェクトである場合は、これがプロジェクトのディレクトリになります。 プロジェクトのプロジェクトファイルがこのディレクトリに保存されます。 プロジェクトがディレクトリベースでない場合、この場所は、プロジェクトファイルを保存するためにのみ使用され、おそらく新しく作成された項目の既定のディレクトリとして使用されます。 szLocationパラメーターは、末尾のスラッシュ () が常に含まれるように定義されてい ) ます。 その後、プロジェクトファクトリは、 " プロジェクトファイルのパス名を構築するときに、"C: と" C:\MyProjects\Project1 "のようなパスを探す必要はありません。

lpszName
String

から新しいプロジェクト名へのポインター。 このパラメーターは、パラメーターに CPF_CLONEFILE が指定されている場合にのみ使用されます grfCreateFlags 。それ以外の場合は null (open project の場合) です。 プロジェクト名にファイル拡張子が含まれていません。

grfCreateFlags
UInt32

からプロジェクトを作成または開く方法を制御します。 値の一覧につい grfCreateFlags ては、「」を参照してください __VSCREATEPROJFLAGS

iidProject
Guid

から返されたのインターフェイス識別子 ppProject 。 この値を iid_NULL して、戻り値を指定することはできません。

ppProject
IntPtr

[out、iid_is (iidProject)]新しく作成されたプロジェクトへのポインター。

戻り値

Int32

メソッドが成功した場合は S_OK を返します。 失敗した場合はエラー コードを返します。

実装

注釈

COM 署名

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 ます。 このメソッドを使用して既存のプロジェクトを開く場合、 lpszLocation および lpszName はに null なります。

このメソッドは、プロジェクトファイルの作成と開きのみを処理し、ソリューションファイル、つまり、.SLN、DSW、または VBG 拡張機能を持つファイルを開くことをサポートしません。 これらのファイルの種類を開く操作は、メソッドによって処理され OpenSolutionFile ます。

新しいプロジェクトを作成するには、空の既存のプロジェクトを複製します。 環境によって、 IVsPackage ファイル拡張子に基づいてこのメソッドを呼び出すが決定されます。

との両方が指定されている場合、 CPF_CLONEFILE CPF_OVERWRITE プロジェクトは対象のプロジェクトファイルを上書きします。 CPF_OVERWRITEが指定されていない場合は、 VS_E_PROJECTALREADYEXISTS このメソッドから特定の HRESULT が返されます。 環境では、[ このプロジェクトは既に存在 しています] ダイアログボックスが表示されます。 ユーザーがプロジェクトファイルを上書きすることを選択した場合、環境はとの両方を指定して、 <xref:Microsoft.VisualStudio.Package.ProjectFactory.CreateProject%2A> メソッドを再度呼び出し CPF_CLONEFILE CPF_OVERWRITE ます。

このメソッドは、フラグが指定されていない限り、ユーザーインターフェイスを表示でき CPF_SILENT ます。 このメソッドは、エラーメッセージをユーザーに報告しません。 この方法では、環境の標準的なエラー報告規約が使用されます。このメソッドは、 SetErrorInfo 発生したエラーを記録するためにメソッドを呼び出し、エラー HRESULT を返します。 呼び出し元は、最終的にはメソッドを呼び出して、 ReportErrorInfo エラーメッセージを表示します。

このメソッドがエラー HRESULT を返すと、メソッドを呼び出して、 SetErrorInfo VSPackage またはプロジェクトが読み込まれなかった原因とその理由に関する情報を提供します。 このメソッドの呼び出し元は、メソッドを使用して、 ReportErrorInfo このエラーメッセージをユーザーに表示できます。

適用対象