¿Cómo se agrega un verbo secundario a un tipo de archivo en el shell de Windows?

La idea básica con la programación de shell de Windows es que puede asociar un tipo de archivo (extensión) dado con lo que MS llama actualmente un progid (por ejemplo, Company.Type.Ver):

HKCR \ .txt @ = Acme.Text.1

HKCR \ Acme.Text.1 @ = Este es el progid para las asociaciones de archivos de texto para Acme

Y luego, Acme Corp puede poner tantos verbos de shell como desee como subclaves de HKCR \ Acme.Text.1 \ shell como HKCR \ Acme.Text.1 \ shell \ open.

Pero si soy XyzCorp, ¿cómo agrego un verbo secundario a los archivos de texto?

No quiero usurpar la asociación de archivos principal. Estoy feliz de que esté asociada a Acme.Text.1, pero quiero agregar "Importar en Xyz Editor".

Yo podría:
1. agregue un verbo al progid de Acme (por ejemplo, HKCR \ Acme.Text.1 \ shell \ my-verb)
2. cree un nuevo progid en nuestro nombre y copie los datos de Acme a eso, y combine los verbos de XyzCorp en ese
3. agregue verbos directamente a la extensión del archivo (al menos uno solía poder hacerlo)
4. ???

¿Alguien sabe la respuesta "correcta" a esto?

EDITAR: Realmente no estoy entusiasmado con ninguna solución que implique tener que modificar el PROGID de otra persona. Realmente preferiría agregar algo: un IContextMenu o lo que sea necesario, fuera del PROGID asociado para agregar verbos / opciones adicionales a un tipo de archivo dado.

Parece un sistema tan loco tener ext-> progid donde progid es propiedad de casas de desarrollo individuales, y puede ser eliminado o cambiado por tal a voluntad. Esto me parece frágil (desinstalar algo y poof, la extensión de su archivo deja de funcionar correctamente o instalar algo y de la misma manera su verbo secundario desaparece porque ext ahora está asignado a un PROGID propietario diferente al que no agregué nuestro verbo cuando estábamos instalado (no, en ese momento, sabiendo algo sobre este otro progid aún inexistente)), y simplemente tonto. Después de todo este tiempo, ¿todas estas versiones de Windows y Microsoft nunca han descubierto una forma de tener capas de controladores para un tipo de archivo determinado? ¿¡¿De Verdad?!?

¡Acabo de encontrar eso asombroso! La programación junior 101 implica aprender patrones de comandos u otros sistemas en capas / en cascada. Los WinProcs de Windows están organizados en un patrón de patrón de comando, de modo que desde el contexto de la ventana interna hasta la externa, muchos posibles controladores reciben una grieta en un MSG dado.

Seguramente hay una manera de agregar un verbo que se aplique a varias extensiones sin anular la asociación primaria progid de las extensiones, que es totalmente independiente de la extensión primaria-> mapeo progid (para que el usuario pueda instalar varios programas a lo largo del tiempo, y aún así tener acceso a un verbo secundario para ese tipo de archivo).

Supongo que puedo mirar HKCR. * ... Entiendo que es posible agregar verbos allí que se aplican a todos los tipos de archivos. Pero entonces, necesito encontrar alguna forma de filtrar para que nuestro verbo solo esté realmente presente para esos tipos de archivos reales a los que deberíamos aplicar ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta