I just replied to the .NET Wrapper thread with this, but here is the summary:
It seems you must prefix the table name with a "\". So in case of the ExecuteSQL.gdb database, if you want to open the cities table you'll want to make the call as OpenTable(L"\\Cities"). If you don't prefix the path with a "\", the table opens successfully AND the table definition is populated properly from the GetDefinition call. However, the result code is -2147211775, indicating the path is not found. Prefixing the table will make the function return 0.
This is made even more confusing with the samples opening the table by using both L"Cities" (Display/Querying) and L"\\Cities" (Editing).