Я бы проанализировал командную строку в InitInstance
, как обычно, но вместо немедленной обработки всех найденных команд, добавьте некоторую специальную обработку для тех, которые вас волнуют (например), отправлять сообщения обратно в ваше собственное сообщение.в очереди, поэтому, когда вы будете готовы начать обработку сообщений, они будут отображаться в качестве первого шага.
Для этого я бы , вероятно, извлек класс из CComandLineInfo
и переопределите ParseParam
для обработки команд, которые вам нужны (и отправьте любые другие аргументы, которые он не распознает, обратно в CComandLineInfo::ParseParam
для обычной обработки).Затем в InitInstance замените этот бит кода:
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
На тот, который использует ваш собственный анализатор командной строки:
MyCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
ParseCommandLine
будет затем вызывать ваш ParseParam
для каждогопараметр в командной строке, дающий вам первый шанс решить, что это значит и как его обработать.Вы, вероятно, захотите посмотреть «стандартные» команды, которые CComandLineInfo
уже понимает, и оставить их в покое, если вам действительно не нужно их менять.