いまさら感が拭えんけど。

>>643
MSDNより
> PathRemoveFileSpec
> Removes the trailing file name and backslash from a path, if it has them.
で、
> Returns nonzero if something was removed, or zero otherwise.
なので、パスと思われるものを与え、戻り値が FALSE ならば
削除すべきファイル名が入っていなかった。
つまりディレクトリパスとして妥当であるといえるのではないかね。

if( !PathIsFileSpec( path ){
 if( !PathRemoveFileSpec( path ) ){
  パスはディレクトリであるという処理
 }
}

うまくいくかは知らん!