In that case, you would use IsUnicode(), then explicitly code for both ANSI and Unicode...
CODE
const char * file = "blah";
int rval;
if (IsUnicode())
{
string_utf16_from_utf8 foo(file);
SHFILEOPSTRUCTW sfo;
memset(&sfo, 0, sizeof(sfo));
sfo.wFunc = FO_DELETE;
sfo.pFrom = foo;
sfo.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION; // whatever
rval = SHFileOperationW(&sfo);
}
else
{
string_ansi_from_utf8 foo(file);
SHFILEOPSTRUCTA sfo;
memset(&sfo, 0, sizeof(sfo));
sfo.wFunc = FO_DELETE;
sfo.pFrom = foo;
sfo.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
rval = SHFileOperationA(&sfo);
}
// check rval here
Rather basic, but you probably get the idea.

Oh yes, and this function might be added to utf8api before 0.8.1, keep a lookout...
EDIT: I see what you were asking about, I'll probably take a look and find that you already did something like that....