LSPのアンインストールインストールしたLSPのエントリをアンインストールするには、WSCDeinstallProviderを呼び出します。lpErrno);lpProviderIdは、アンインストールしたいエントリのGUIDを指定します。lpErrnoは、エラー情報を受け取る変数のアドレスを指定します。戻り値は、関数が成功した場合に0が返り、失敗した場合にSOCKET_ERRORが返ります。次に示すUninstallLspは、引数で指定されたIDを持つエントリをアンインストールします。そのエントリに関連するダミーエントリをアンインストールする場合もあります。TEXT("ダミーエントリが選択されています。TEXT("ベースプロトコルが選択されています。TEXT("LSPのアンインストールに失敗しました。TEXT("管理者として実行してください。TEXT("LSPのアンインストールに成功しました。TRUE;}LSPのアンインストールで複雑となるのは、エントリ間の関係です。片方をアンインストールする場合は、もう片方のエントリもアンインストールする必要があります。ダミーエントリをアンインストールしてもよいかの判断を行っています。主要な処理を順に見ていきます。TEXT("ダミーエントリが選択されています。TEXT("ベースプロトコルのエントリが選択されています。FALSE;}else;}}}このコードは、lpdwEntryArray[i]がダミーエントリ、またはベースプロトコルのエントリでないかを確認する部分です。これらのエントリは直接アンインストールしないようにしいています。&nError);break;}}このコードは、実際のエントリとダミーエントリをアンインストールする部分です。WSCDeinstallProviderでアンインストールすることになります。それをアンインストールしてもよいかの判断を行う必要があります。この基準となるのは、ダミーエントリのIDをChainEntries[0]として格納するエントリが存在するかどうかです。これを持つエントリを全エントリの中から検索します。ダミーエントリをアンインストールすることになります。ChainEntries[0]に0を格納しています。