<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>CPP</title><link>http://blogs.wankuma.com/tocchann/category/2288.aspx</link><description>CPP</description><managingEditor>とっちゃん</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>とっちゃん</dc:creator><title>C++/WinRT</title><link>http://blogs.wankuma.com/tocchann/archive/2016/10/14/538337.aspx</link><pubDate>Fri, 14 Oct 2016 12:25:00 GMT</pubDate><guid>http://blogs.wankuma.com/tocchann/archive/2016/10/14/538337.aspx</guid><wfw:comment>http://blogs.wankuma.com/tocchann/comments/538337.aspx</wfw:comment><comments>http://blogs.wankuma.com/tocchann/archive/2016/10/14/538337.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tocchann/comments/commentRss/538337.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tocchann/services/trackbacks/538337.aspx</trackback:ping><description>&lt;p&gt;&lt;a title="C++/WinRT Available on GitHub" href="https://blogs.msdn.microsoft.com/vcblog/2016/10/13/cwinrt-available-on-github/"&gt;C++/WinRT Available on GitHub&lt;/a&gt;&lt;/p&gt; &lt;p&gt;なんていうものが出てきました。Native の C++ プロジェクトで、Windows Runtime API を使うためのライブラリらしいです。&lt;/p&gt; &lt;p&gt;これってば、Desktop Bridge アプリで使ったらUWPAPIも結構使えるんじゃないか？という気がする。。。もちろん、気がするだけで試してはいませんｗ&lt;/p&gt; &lt;p&gt;最も UWP API は C++/CX からじゃないと使えないならダメなんだけどねｗ&lt;/p&gt; &lt;p&gt;落としてないのでこれ以上はよくわかってませんが、VS2015 Update 3, VS”15” Preview などで使えるらしいです。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tocchann/aggbug/538337.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とっちゃん</dc:creator><title>Developing for Windows 10 with Visual C++ 2015</title><link>http://blogs.wankuma.com/tocchann/archive/2015/07/30/520135.aspx</link><pubDate>Thu, 30 Jul 2015 12:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/tocchann/archive/2015/07/30/520135.aspx</guid><wfw:comment>http://blogs.wankuma.com/tocchann/comments/520135.aspx</wfw:comment><comments>http://blogs.wankuma.com/tocchann/archive/2015/07/30/520135.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tocchann/comments/commentRss/520135.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tocchann/services/trackbacks/520135.aspx</trackback:ping><description>&lt;a title="Developing for Windows 10 with Visual C++ 2015" href="http://blogs.msdn.com/b/vcblog/archive/2015/07/29/developing-for-windows-10-with-visual-c-2015.aspx"&gt;Developing for Windows 10 with Visual C++ 2015&lt;/a&gt; &lt;p&gt;.NET Framework とか使わないしー！という人も必読です。&lt;/p&gt; &lt;p&gt;ぶっちゃけ、こんなの知らねーよ！で通じるのは、Windows 10 には移行しませんという今月で廃業するベンダーさんくらいです。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tocchann/aggbug/520135.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とっちゃん</dc:creator><title>セットアップの設定が変わってるので。。。</title><link>http://blogs.wankuma.com/tocchann/archive/2015/07/27/520046.aspx</link><pubDate>Mon, 27 Jul 2015 13:43:00 GMT</pubDate><guid>http://blogs.wankuma.com/tocchann/archive/2015/07/27/520046.aspx</guid><wfw:comment>http://blogs.wankuma.com/tocchann/comments/520046.aspx</wfw:comment><comments>http://blogs.wankuma.com/tocchann/archive/2015/07/27/520046.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tocchann/comments/commentRss/520046.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tocchann/services/trackbacks/520046.aspx</trackback:ping><description>&lt;p&gt;&lt;a title="Setup Changes in Visual Studio 2015 Affecting C++ Developers" href="http://blogs.msdn.com/b/vcblog/archive/2015/07/24/setup-changes-in-visual-studio-2015-affecting-c-developers.aspx" target="_blank"&gt;Setup Changes in Visual Studio 2015 Affecting C++ Developers&lt;/a&gt;&lt;/p&gt; &lt;p&gt;C++ はよりプロフェッショナルな色合いが濃くなるようですね。&lt;/p&gt; &lt;p&gt;Typical(お手軽版)では、インストールされないんだって。&lt;/p&gt; &lt;p&gt;でも、既存のプロジェクトを開いたり、新規に作成しようとすると、インストールしますかー？って聞いてくるそうです。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;まぁ、デフォルトはカスタムインストールなのは、1.0の昔から変わらないので問題ないｗ＜ちが！&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tocchann/aggbug/520046.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とっちゃん</dc:creator><title>[VC++] VS2015 Preview のC++機能一覧</title><link>http://blogs.wankuma.com/tocchann/archive/2014/11/19/496330.aspx</link><pubDate>Wed, 19 Nov 2014 11:02:00 GMT</pubDate><guid>http://blogs.wankuma.com/tocchann/archive/2014/11/19/496330.aspx</guid><wfw:comment>http://blogs.wankuma.com/tocchann/comments/496330.aspx</wfw:comment><comments>http://blogs.wankuma.com/tocchann/archive/2014/11/19/496330.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tocchann/comments/commentRss/496330.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tocchann/services/trackbacks/496330.aspx</trackback:ping><description>&lt;p&gt;ネタ元：&lt;a title="C++11/14/17 Features In VS 2015 Preview" href="http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx" target="_blank"&gt;C++11/14/17 Features In VS 2015 Preview&lt;/a&gt;&lt;/p&gt; &lt;p&gt;C++11/14/17 のいろんな機能の対応表です。&lt;/p&gt; &lt;p&gt;それ以上でもそれ以下でもないｗ&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/tocchann/aggbug/496330.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>とっちゃん</dc:creator><title>[C++/CLI]フォルダ選択ダイアログ(コアルーチン)</title><link>http://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspx</link><pubDate>Mon, 22 Apr 2013 21:50:00 GMT</pubDate><guid>http://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspx</guid><wfw:comment>http://blogs.wankuma.com/tocchann/comments/327859.aspx</wfw:comment><comments>http://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspx#Feedback</comments><slash:comments>344</slash:comments><wfw:commentRss>http://blogs.wankuma.com/tocchann/comments/commentRss/327859.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/tocchann/services/trackbacks/327859.aspx</trackback:ping><description>&lt;p&gt;Vista からフォルダ選択ダイアログが変わりました。&lt;/p&gt; &lt;p&gt;大半のソフトは、古い形式を使っていますが、今後は少しずつXP非対応アプリも増えてくると思うので、じわじわと新しいフォルダ選択ダイアログが増えていくでしょう。実際 Visual Studio は何気に新しいものを使ってますし。。。&lt;/p&gt; &lt;p&gt;が、.NET Framework はまだ対応していません。ということで、だれでも使えるように、コアルーチンだけここに張り付けておきます。&lt;/p&gt; &lt;p&gt;作り方は、&lt;/p&gt; &lt;ol&gt; &lt;li&gt;C++/CLIで、クラスライブラリプロジェクトを作成する。&lt;/li&gt; &lt;li&gt;下記のコードを PickupFolderDialogCore.h と PickupFolderDialogCore.cpp で保存する。&lt;/li&gt; &lt;li&gt;プロジェクトをビルドする。&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;以上です。WPFやWindows Forms からの呼出しは、それぞれでラッパーを書いたほうがいいでしょう。&lt;/p&gt; &lt;p&gt;理由はウィンドウハンドルの取り方がそれぞれで微妙に異なるからです。&lt;/p&gt; &lt;p&gt;説明が必要になるほど複雑なコードじゃないので解説はなし。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;ということでヘッダー&lt;/p&gt; &lt;div id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3c6e98b2-4d74-4c65-bc26-5cf39c550aad" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;pre name="code" class="c"&gt;using namespace System;
namespace Wankuma
{
  public ref class PickupFolderDialogCore
  {
  public:
    PickupFolderDialogCore();
    property System::String^ SelectedPath{
      System::String^ get();
      void set( System::String^ value );
    }
    bool ShowDialog( System::IntPtr ownerWindow );
private:
    System::String^ m_selectedPath;
  };
}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;続いてソース&lt;/p&gt;
&lt;div id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:57baa6ac-310c-4701-9be5-500dddd97b2f" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;pre name="code" class="c"&gt;//	class PickupFolderDialogCore
#include "stdafx.h"

#define STRICT
#include &amp;lt;ShObjIdl.h&amp;gt;
#include &amp;lt;comdef.h&amp;gt;

#include &amp;lt;vcclr.h&amp;gt;

#pragma comment( lib, "user32.lib" )
#pragma comment( lib, "shell32.lib" )
_COM_SMARTPTR_TYPEDEF(IFileOpenDialog,__uuidof(IFileOpenDialog));
_COM_SMARTPTR_TYPEDEF(IShellItem,__uuidof(IShellItem));

static HWND APIENTRY GetSafeOwnerWindow( HWND hwndOwner )
{
  if( hwndOwner != nullptr &amp;amp;&amp;amp; !IsWindow( hwndOwner ) ){
    hwndOwner = nullptr;
  }
  if( hwndOwner == nullptr ){
    hwndOwner = GetForegroundWindow();
  }
  HWND  hwndParent = hwndOwner;
  while( hwndParent != nullptr ){
    hwndOwner = hwndParent;
    hwndParent = GetParent( hwndOwner );
  }
  if( hwndOwner != nullptr ){
    hwndOwner = GetLastActivePopup( hwndOwner );
  }
  return hwndOwner;
}

#include "PickupFolderDialogCore.h"
Wankuma::PickupFolderDialogCore::PickupFolderDialogCore()
{
}
String^ Wankuma::PickupFolderDialogCore::SelectedPath::get()
{
  return m_selectedPath;
}
void Wankuma::PickupFolderDialogCore::SelectedPath::set( String^ value )
{
  m_selectedPath = value;
}
bool Wankuma::PickupFolderDialogCore::ShowDialog( IntPtr ownerWindow )
{
  HWND hwndOwner = GetSafeOwnerWindow( static_cast&amp;lt;HWND&amp;gt;( ownerWindow.ToPointer() ) );

  IFileOpenDialogPtr dlg( __uuidof(FileOpenDialog) );
  dlg-&amp;gt;SetOptions( FOS_PICKFOLDERS|FOS_FORCEFILESYSTEM );
  if( String::IsNullOrWhiteSpace( m_selectedPath ) == false ){
    cli::pin_ptr&amp;lt;const System::Char&amp;gt; folder = PtrToStringChars( SelectedPath );
    IShellItemPtr item;
    if( SUCCEEDED( SHCreateItemFromParsingName( folder, nullptr, IID_PPV_ARGS( &amp;amp;item ) ) ) ){
      dlg-&amp;gt;SetFolder( item );
    }
  }
  HRESULT hRes = dlg-&amp;gt;Show( hwndOwner );
  if( SUCCEEDED( hRes ) ){
    IShellItemPtr item;
    if( SUCCEEDED( (hRes=dlg-&amp;gt;GetResult( &amp;amp;item )) ) ){
      wchar_t* folder = nullptr;
      item-&amp;gt;GetDisplayName( SIGDN_FILESYSPATH, &amp;amp;folder );
      SelectedPath = gcnew System::String( folder );
      CoTaskMemFree( folder );
      return true;
    }
  }
  return false;
}
&lt;/pre&gt;&lt;/div&gt;&lt;img src ="http://blogs.wankuma.com/tocchann/aggbug/327859.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>