다음과 같이 ISV(독립 소프트웨어 공급업체) 이름을 가진 접두사 동사입니다 ISVName.verb. 정규화되지 않은 이름을 사용하면 동일한 동사 이름을 선택한 여러 ISV와 충돌할 수 있습니다.
항상 애플리케이션별 ProgID를 사용합니다. 일부 항목 유형은 이 매핑을 사용하지 않으므로 공급업체 고유 이름이 필요합니다.
호출 메서드를 기준으로 UI를 배치하지만 호출자 스레드에서는 실행되지 않습니다.
IContextMenu::InvokeCommand 메서드에 전달된 정식 동사에 대한 반환 값 S_OK 허용하지 않습니다. 이렇게 하면 실제 동사 구현에 대한 오류가 호출되고 정식 동사에 대한 오류 코드가 반환됩니다. 정식 동사를 지원하지 않는 경우 0이 아닌 HIWORD(lpVerb) 값이 발견되면 오류를 반환합니다.
동사의 호스트로 rundll32.exe 사용하지 않도록 합니다.
IContextMenu::QueryContextMenu를 구현할 때 ResultFromShort 매크로를 사용하여 HRESULT 값을 통해 메뉴에 추가된 동사 수를 반환해야 합니다.
다음 레지스트리 키 항목 중 하나에 등록하는 경우 주의해야 하며 의도하지 않은 결과를 줄이기 위해 가장 구체적인 형식에 처리기를 등록해야 합니다.
HKEY_CLASSES_ROOT\*
HKEY_CLASSES_ROOT\AllFileSystemObjects
HKEY_CLASSES_ROOT\Folder
HKEY_CLASSES_ROOT\Directory
바로 가기 메뉴에서 기본 동사를 변경해야 할 것으로 예상되는 경우에만 MayChangeDefaultMenu 키를 설정합니다. 처리기가 기본 동사를 변경하지 않으면 시스템이 불필요하게 DLL을 로드하므로 이 키를 설정하면 안 됩니다.
다중 선택 동사 시나리오의 항목 수는 클 수 있으므로 동사 구현의 성능에 미치는 영향을 고려하는 것이 중요합니다. 예를 들어 사용자가 많은 수의 항목이 포함된 범위에서 "*"를 검색한 다음 모두 선택 및 마우스 오른쪽 단추를 클릭하면 동사에 수천 개의 항목이 있을 수 있는 선택 항목이 표시됩니다. 따라서 동사는 선택 영역의 첫 번째 항목과 전체 항목 수만 고려해야 합니다. 첫 번째 항목은 보기 맨 위에 있는 항목 또는 사용자가 처음 마우스 오른쪽 단추로 클릭한 항목으로 정의됩니다.
Windows 7 이상에서는 바로 가기 메뉴를 쿼리할 때 동사에 전달되는 항목 수가 16개로 제한됩니다. 그런 다음 동사가 호출될 때 전체 선택 영역으로 동사를 다시 만들고 다시 초기화합니다.
경우에 따라 적은 수의 고정 항목을 고려하는 것이 적절합니다. 예를 들어 "diff" 동사는 처음 두 항목만 고려하는 것이 적절합니다. 일반적으로 선택 영역의 모든 항목을 테스트하여 특정 형식인지 확인하거나 선택 영역의 모든 항목에서 해당 속성을 쿼리할 필요는 없습니다. 첫 번째 항목을 살펴보고 동사를 추가하는 것이 적절한지 결정합니다.
이질적인 선택
확인되지 않은 항목을 동사에서 처리할 수 있다고 가정하면 다중 선택 사례에 낙관적 동사가 자동으로 추가됩니다. 반면, 선택 영역에 검색되지 않은 항목이 포함되어 있고 항목 수가 작은 경우에만 비관적 동사가 추가되지 않습니다.
플레이어 스타일 동사는 낙관적이어야 하며 처리되지 않은 항목을 자동으로 건너뜁니다. 항목에 대해 작업하지 못하면 데이터가 손실되거나 혼동될 수 있는 경우 동사는 처리할 수 없는 항목에 대해 사용자에게 경고해야 합니다. 예를 들어 "backup" 동사는 일부 항목을 백업할 수 없음을 나타내야 합니다.
Do you plan to create an app for Business Central? If you do, this path will be helpful to guide you through the recommended processes of publishing your app to AppSource.