>先頭にある連続したtokenを取り除く部分が削除されていますが大丈夫?
空のトークンは無視するんですね。
TCHAR* my_strtok( TCHAR* pBuffer, int nLen, int* pnOffset, const TCHAR* pDelimiter )
{
int i = *pnOffset;
TCHAR* p;
do {
bool bFlag = false; //ダブルコーテーションの中か?
if( i >= nLen ) return NULL;
p = &pBuffer[i];
for( ; i < nLen; i++ )
{
if( pBuffer[i] == _T('"') ) bFlag = ! bFlag;
if( ! bFlag )
{
if( _tcschr( pDelimiter, pBuffer[i] ) )
{
pBuffer[i++] = _T('\0');
break;
}
}
}
*pnOffset = i;
} while( ! *p ); //空のトークンなら次を探す
return p;
}
でどうだろう?