char strexts[64] = { 0 }; // makes all zero
int len = 0;
strcpy(strexts, ".xlsm");
len = strlen(strexts)+1;
strcpy (&strexts[len], ".xls"); // at strexts[len-1] we got a binary zero.
len += strlen(".xls") +1;
strcpy (&strexts[len], ".csv");
// at end we need at least to zero characters what is granted if the buffer is big enough.
But the concept of tblFilename being equal to strFilePath really makes no sense at all. If the code you are using to open and select the file from the FileDialog is supposed to return a filename, instead of a path, then you ought to give that result a variable name that looks like a filename.
You should also add some code to check the value returned by that function and exit out of your code if the value is an empty string.