From 31323505710b6410b2804ae9f12f0167f91d9aa7 Mon Sep 17 00:00:00 2001 From: Michael Bowen <10384982+mikeebowen@users.noreply.github.com> Date: Tue, 12 Aug 2025 14:01:52 -0700 Subject: [PATCH 1/3] don't hard code IDs --- .../cs/Program.cs | 3 +- samples/samples.sln | 44 +++++++++++++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/samples/presentation/create_by_providing_a_file_name/cs/Program.cs b/samples/presentation/create_by_providing_a_file_name/cs/Program.cs index 9e815d4..34b711a 100644 --- a/samples/presentation/create_by_providing_a_file_name/cs/Program.cs +++ b/samples/presentation/create_by_providing_a_file_name/cs/Program.cs @@ -41,6 +41,7 @@ static void CreatePresentationParts(PresentationPart presentationPart) slidePart1 = CreateSlidePart(presentationPart); slideLayoutPart1 = CreateSlideLayoutPart(slidePart1); + string slideLayoutPart1RelId = slidePart1.GetIdOfPart(slideLayoutPart1); slideMasterPart1 = CreateSlideMasterPart(slideLayoutPart1); themePart1 = CreateTheme(slideMasterPart1); @@ -81,7 +82,7 @@ static SlidePart CreateSlidePart(PresentationPart presentationPart) // static SlideLayoutPart CreateSlideLayoutPart(SlidePart slidePart1) { - SlideLayoutPart slideLayoutPart1 = slidePart1.AddNewPart("rId1"); + SlideLayoutPart slideLayoutPart1 = slidePart1.AddNewPart(); SlideLayout slideLayout = new SlideLayout( new CommonSlideData(new ShapeTree( new P.NonVisualGroupShapeProperties( diff --git a/samples/samples.sln b/samples/samples.sln index 5aadc44..9b89d2b 100644 --- a/samples/samples.sln +++ b/samples/samples.sln @@ -323,12 +323,15 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "add_transition_cs", "presentation\add_transition\cs\add_transition_cs.csproj", "{F61C7360-EB1B-4AF1-BD0D-257CAF122223}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "add_transition_vb", "presentation\add_transition\vb\add_transition_vb.vbproj", "{58E15219-2772-42DC-8BB3-628811289B0F}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "add_audio_cs", "presentation\add_audio\cs\add_audio_cs.csproj", "{2BBA1942-8180-4435-A0A5-22811CC923FA}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "add_audio_vb", "presentation\add_audio\vb\add_audio_vb.vbproj", "{3327770E-D643-470A-88C7-9FE9483D2F43}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "copy_worksheet_with_sax_cs", "spreadsheet\copy_worksheet_with_sax\cs\copy_worksheet_with_sax_cs.csproj", "{0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "copy_worksheet_with_sax_vb", "spreadsheet\copy_worksheet_with_sax\vb\copy_worksheet_with_sax_vb.vbproj", "{2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "replace_text_with_sax_cs", "word\replace_text_with_sax\cs\replace_text_with_sax_cs.csproj", "{4C514047-64B5-1383-4564-B827B846A6A7}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "replace_text_with_sax_vb", "word\replace_text_with_sax\vb\replace_text_with_sax_vb.vbproj", "{6EB91F44-EC13-5354-0450-9A2687C3B169}" @@ -2175,14 +2178,6 @@ Global {6170C4E1-A109-435A-BF59-026C85B3BD9C}.Debug|x86.Build.0 = Debug|Any CPU {6170C4E1-A109-435A-BF59-026C85B3BD9C}.Release|Any CPU.ActiveCfg = Release|Any CPU {6170C4E1-A109-435A-BF59-026C85B3BD9C}.Release|Any CPU.Build.0 = Release|Any CPU - {9350E344-D11D-4496-9092-9BA18FC65175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9350E344-D11D-4496-9092-9BA18FC65175}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9350E344-D11D-4496-9092-9BA18FC65175}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9350E344-D11D-4496-9092-9BA18FC65175}.Release|Any CPU.Build.0 = Release|Any CPU - {437E22AF-37F2-4D91-B508-2317AD5368BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {437E22AF-37F2-4D91-B508-2317AD5368BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {437E22AF-37F2-4D91-B508-2317AD5368BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {437E22AF-37F2-4D91-B508-2317AD5368BE}.Release|Any CPU.Build.0 = Release|Any CPU {6170C4E1-A109-435A-BF59-026C85B3BD9C}.Release|x64.ActiveCfg = Release|Any CPU {6170C4E1-A109-435A-BF59-026C85B3BD9C}.Release|x64.Build.0 = Release|Any CPU {6170C4E1-A109-435A-BF59-026C85B3BD9C}.Release|x86.ActiveCfg = Release|Any CPU @@ -2237,21 +2232,52 @@ Global {3327770E-D643-470A-88C7-9FE9483D2F43}.Release|x86.Build.0 = Release|Any CPU {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Debug|x64.ActiveCfg = Debug|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Debug|x64.Build.0 = Debug|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Debug|x86.ActiveCfg = Debug|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Debug|x86.Build.0 = Debug|Any CPU {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Release|Any CPU.Build.0 = Release|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Release|x64.ActiveCfg = Release|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Release|x64.Build.0 = Release|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Release|x86.ActiveCfg = Release|Any CPU + {0AA6B9DD-2A2C-0E96-1052-6F4AC44B3F5D}.Release|x86.Build.0 = Release|Any CPU {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Debug|x64.ActiveCfg = Debug|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Debug|x64.Build.0 = Debug|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Debug|x86.ActiveCfg = Debug|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Debug|x86.Build.0 = Debug|Any CPU {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Release|Any CPU.ActiveCfg = Release|Any CPU {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Release|Any CPU.Build.0 = Release|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Release|x64.ActiveCfg = Release|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Release|x64.Build.0 = Release|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Release|x86.ActiveCfg = Release|Any CPU + {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4}.Release|x86.Build.0 = Release|Any CPU {4C514047-64B5-1383-4564-B827B846A6A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4C514047-64B5-1383-4564-B827B846A6A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Debug|x64.Build.0 = Debug|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Debug|x86.ActiveCfg = Debug|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Debug|x86.Build.0 = Debug|Any CPU {4C514047-64B5-1383-4564-B827B846A6A7}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C514047-64B5-1383-4564-B827B846A6A7}.Release|Any CPU.Build.0 = Release|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Release|x64.ActiveCfg = Release|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Release|x64.Build.0 = Release|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Release|x86.ActiveCfg = Release|Any CPU + {4C514047-64B5-1383-4564-B827B846A6A7}.Release|x86.Build.0 = Release|Any CPU {6EB91F44-EC13-5354-0450-9A2687C3B169}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6EB91F44-EC13-5354-0450-9A2687C3B169}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Debug|x64.ActiveCfg = Debug|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Debug|x64.Build.0 = Debug|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Debug|x86.ActiveCfg = Debug|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Debug|x86.Build.0 = Debug|Any CPU {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|Any CPU.ActiveCfg = Release|Any CPU {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|Any CPU.Build.0 = Release|Any CPU - + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x64.ActiveCfg = Release|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x64.Build.0 = Release|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x86.ActiveCfg = Release|Any CPU + {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 99cb04c11b45362c44306c4f9a857fd5283a071d Mon Sep 17 00:00:00 2001 From: Michael Bowen <10384982+mikeebowen@users.noreply.github.com> Date: Tue, 12 Aug 2025 15:43:14 -0700 Subject: [PATCH 2/3] add sample for how to reply to a comment --- ...to-reply-to-a-comment-in-a-presentation.md | 91 ++++++++++++++++++ docs/presentation/overview.md | 56 +++++------ docs/toc.yml | 2 + .../reply_to_comment/cs/Program.cs | Bin 0 -> 11566 bytes .../cs/reply_to_comment_cs.csproj | Bin 0 -> 74 bytes .../reply_to_comment/vb/Program.vb | Bin 0 -> 12992 bytes .../vb/reply_to_comment_vb.vbproj | Bin 0 -> 74 bytes samples/samples.sln | 30 ++++++ 8 files changed, 152 insertions(+), 27 deletions(-) create mode 100644 docs/presentation/how-to-reply-to-a-comment-in-a-presentation.md create mode 100644 samples/presentation/reply_to_comment/cs/Program.cs create mode 100644 samples/presentation/reply_to_comment/cs/reply_to_comment_cs.csproj create mode 100644 samples/presentation/reply_to_comment/vb/Program.vb create mode 100644 samples/presentation/reply_to_comment/vb/reply_to_comment_vb.vbproj diff --git a/docs/presentation/how-to-reply-to-a-comment-in-a-presentation.md b/docs/presentation/how-to-reply-to-a-comment-in-a-presentation.md new file mode 100644 index 0000000..9813f31 --- /dev/null +++ b/docs/presentation/how-to-reply-to-a-comment-in-a-presentation.md @@ -0,0 +1,91 @@ +--- + +api_name: +- Microsoft.Office.DocumentFormat.OpenXML.Packaging +api_type: +- schema +ms.assetid: 9774217d-1f71-494a-9ab9-a711661f8e83 +title: 'How to: Reply to a comment in a presentation' +ms.suite: office + +ms.author: o365devx +author: o365devx +ms.topic: conceptual +ms.date: 08/12/2025 +ms.localizationpriority: medium +--- + +# Reply to a comment in a presentation + +This topic shows how to use the classes in the Open XML SDK for +Office to reply to existing comments in a presentation +programmatically. + + +[!include[Structure](../includes/presentation/structure.md)] + +[!include[description of a comment](../includes/presentation/modern-comment-description.md)] + +## How the Sample Code Works + +The sample code opens the presentation document in the using statement. Then it gets or creates the CommentAuthorsPart, and verifies that there is an existing comment authors part. If there is not, it adds one. + +### [C#](#tab/cs-1) +[!code-csharp[](../../samples/presentation/reply_to_comment/cs/Program.cs#snippet1)] + +### [Visual Basic](#tab/vb-1) +[!code-vb[](../../samples/presentation/reply_to_comment/vb/Program.vb#snippet1)] +*** + +Next the code determines if the author that is passed in is on the list of existing authors; if so, it assigns the existing author ID. If not, it adds a new author to the list of authors and assigns an author ID and the parameter values. + +### [C#](#tab/cs-2) +[!code-csharp[](../../samples/presentation/reply_to_comment/cs/Program.cs#snippet2)] + +### [Visual Basic](#tab/vb-2) +[!code-vb[](../../samples/presentation/reply_to_comment/vb/Program.vb#snippet2)] +*** + +Next the code gets the first slide part and verifies that it exists, then checks if there are any comment parts associated with the slide. + +### [C#](#tab/cs-3) +[!code-csharp[](../../samples/presentation/reply_to_comment/cs/Program.cs#snippet3)] + +### [Visual Basic](#tab/vb-3) +[!code-vb[](../../samples/presentation/reply_to_comment/vb/Program.vb#snippet3)] +*** + +The code then retrieves the comment list and then iterates through each comment in the comment list, displays the comment text to the user, and prompts whether they want to reply to each comment. + +### [C#](#tab/cs-5) +[!code-csharp[](../../samples/presentation/reply_to_comment/cs/Program.cs#snippet4)] + +### [Visual Basic](#tab/vb-5) +[!code-vb[](../../samples/presentation/reply_to_comment/vb/Program.vb#snippet4)] +*** + +When the user chooses to reply to a comment, the code prompts for the reply text, then gets or creates a `CommentReplyList` for the comment and adds the new reply with the appropriate author information and timestamp. + +### [C#](#tab/cs-6) +[!code-csharp[](../../samples/presentation/reply_to_comment/cs/Program.cs#snippet5)] + +### [Visual Basic](#tab/vb-6) +[!code-vb[](../../samples/presentation/reply_to_comment/vb/Program.vb#snippet5)] +*** + +## Sample Code + +Following is the complete code sample showing how to reply to existing comments +in a presentation slide with modern PowerPoint comments. + +### [C#](#tab/cs) +[!code-csharp[](../../samples/presentation/reply_to_comment/cs/Program.cs#snippet0)] + +### [Visual Basic](#tab/vb) +[!code-vb[](../../samples/presentation/reply_to_comment/vb/Program.vb#snippet0)] +*** + +## See also + + +- [Open XML SDK class library reference](/office/open-xml/open-xml-sdk) diff --git a/docs/presentation/overview.md b/docs/presentation/overview.md index d223d2e..6e33d77 100644 --- a/docs/presentation/overview.md +++ b/docs/presentation/overview.md @@ -11,7 +11,7 @@ ms.suite: office ms.author: o365devx author: o365devx ms.topic: conceptual -ms.date: 11/01/2017 +ms.date: 08/12/2025 ms.localizationpriority: high --- # Presentations @@ -20,60 +20,62 @@ This section provides how-to topics for working with presentation documents usin ## In this section -- [Structure of a PresentationML document](structure-of-a-presentationml-document.md) - +- [Structure of a PresentationML document](structure-of-a-presentationml-document.md) + - [Add an audio file to a slide in a presentation](how-to-add-an-audio-to-a-slide-in-a-presentation.md) -- [Add a comment to a slide in a presentation](how-to-add-a-comment-to-a-slide-in-a-presentation.md) +- [Add a comment to a slide in a presentation](how-to-add-a-comment-to-a-slide-in-a-presentation.md) + +- [Reply to a comment in a presentation](how-to-reply-to-a-comment-in-a-presentation.md) -- [Apply a theme to a presentation](how-to-apply-a-theme-to-a-presentation.md) +- [Apply a theme to a presentation](how-to-apply-a-theme-to-a-presentation.md) -- [Change the fill color of a shape in a presentation](how-to-change-the-fill-color-of-a-shape-in-a-presentation.md) +- [Change the fill color of a shape in a presentation](how-to-change-the-fill-color-of-a-shape-in-a-presentation.md) -- [Create a presentation document by providing a file name](how-to-create-a-presentation-document-by-providing-a-file-name.md) +- [Create a presentation document by providing a file name](how-to-create-a-presentation-document-by-providing-a-file-name.md) -- [Delete all the comments by an author from all the slides in a presentation](how-to-delete-all-the-comments-by-an-author-from-all-the-slides-in-a-presentation.md) +- [Delete all the comments by an author from all the slides in a presentation](how-to-delete-all-the-comments-by-an-author-from-all-the-slides-in-a-presentation.md) -- [Delete a slide from a presentation](how-to-delete-a-slide-from-a-presentation.md) +- [Delete a slide from a presentation](how-to-delete-a-slide-from-a-presentation.md) -- [Get all the external hyperlinks in a presentation](how-to-get-all-the-external-hyperlinks-in-a-presentation.md) +- [Get all the external hyperlinks in a presentation](how-to-get-all-the-external-hyperlinks-in-a-presentation.md) -- [Get all the text in a slide in a presentation](how-to-get-all-the-text-in-a-slide-in-a-presentation.md) +- [Get all the text in a slide in a presentation](how-to-get-all-the-text-in-a-slide-in-a-presentation.md) -- [Get all the text in all slides in a presentation](how-to-get-all-the-text-in-all-slides-in-a-presentation.md) +- [Get all the text in all slides in a presentation](how-to-get-all-the-text-in-all-slides-in-a-presentation.md) - [Get the titles of all the slides in a presentation](how-to-get-the-titles-of-all-the-slides-in-a-presentation.md) -- [Insert a new slide into a presentation](how-to-insert-a-new-slide-into-a-presentation.md) +- [Insert a new slide into a presentation](how-to-insert-a-new-slide-into-a-presentation.md) -- [Move a slide to a new position in a presentation](how-to-move-a-slide-to-a-new-position-in-a-presentation.md) +- [Move a slide to a new position in a presentation](how-to-move-a-slide-to-a-new-position-in-a-presentation.md) -- [Move a paragraph from one presentation to another](how-to-move-a-paragraph-from-one-presentation-to-another.md) +- [Move a paragraph from one presentation to another](how-to-move-a-paragraph-from-one-presentation-to-another.md) -- [Open a presentation document for read-only access](how-to-open-a-presentation-document-for-read-only-access.md) +- [Open a presentation document for read-only access](how-to-open-a-presentation-document-for-read-only-access.md) - [Retrieve the number of slides in a presentation document](how-to-retrieve-the-number-of-slides-in-a-presentation-document.md) - + - [Add a transition to a slides in a presentation](how-to-add-transitions-between-slides-in-a-presentation.md) -- [Working with animation](working-with-animation.md) +- [Working with animation](working-with-animation.md) -- [Working with comments](working-with-comments.md) +- [Working with comments](working-with-comments.md) -- [Working with handout master slides](working-with-handout-master-slides.md) +- [Working with handout master slides](working-with-handout-master-slides.md) -- [Working with notes slides](working-with-notes-slides.md) +- [Working with notes slides](working-with-notes-slides.md) -- [Working with presentations](working-with-presentations.md) +- [Working with presentations](working-with-presentations.md) -- [Working with presentation slides](working-with-presentation-slides.md) +- [Working with presentation slides](working-with-presentation-slides.md) -- [Working with slide layouts](working-with-slide-layouts.md) +- [Working with slide layouts](working-with-slide-layouts.md) -- [Working with slide masters](working-with-slide-masters.md) +- [Working with slide masters](working-with-slide-masters.md) -## Related sections +## Related sections -- [Getting started with the Open XML SDK for Office](../getting-started.md) +- [Getting started with the Open XML SDK for Office](../getting-started.md) diff --git a/docs/toc.yml b/docs/toc.yml index e21f4f2..037d90b 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -48,6 +48,8 @@ href: presentation/how-to-add-an-audio-to-a-slide-in-a-presentation.md - name: Add a comment to a slide in a presentation href: presentation/how-to-add-a-comment-to-a-slide-in-a-presentation.md + - name: Reply to a comment in a presentation + href: presentation/how-to-reply-to-a-comment-in-a-presentation.md - name: Add a video to a slide in a presentation href: presentation/how-to-add-a-video-to-a-slide-in-a-presentation.md - name: Apply a theme to a presentation diff --git a/samples/presentation/reply_to_comment/cs/Program.cs b/samples/presentation/reply_to_comment/cs/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..ae55a859c2a80360433c6071d79a3d94c61e65cf GIT binary patch literal 11566 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 literal 0 HcmV?d00001 diff --git a/samples/presentation/reply_to_comment/vb/Program.vb b/samples/presentation/reply_to_comment/vb/Program.vb new file mode 100644 index 0000000000000000000000000000000000000000..d5f7650028b94a57756c3f7e4a65a22154ff3e1f GIT binary patch literal 12992 zcmd5@TTdHD7@cQ+#fpcl2)PI;7eq+YK04STs6eO2;x6#)nV&m%BYYmZ*I3Kv zKVkmNZMk)J4*_e6b3eONoOrVKX|LS}{G0;&iTld!;P(MAJ^=oo@nq^h5fbUx!_)Hx zjqB2J04k2%FZg@1pk>Rw1dK5_c?ReepilAr#8Z3@TC4fb8?1Pb&o8l?*bOjFv5vCX z^?%<0T)o2Q7oNKl;JFQbKgCIuSb%>Hs%D%EpVG-m?GEO?2lp=k{}MkuYsWpz(4JfQpmn9J zyTW-!Va|HUnJHk-@Jnl=#+`cJk|Xpa6=ueG#^+|)qFduz?6$e~(^5|)d!Qxdpf}f3 zZ%S7O-!@oC{vP%p0opa-<*ZKBkjs0XWAp+QD5F)0hwa>=hSBemU%z7)b!?WAqTrad zww;&KPv4j4)WHHSZC3XDaUqdz+Z0A+HbsBYE@!he;{)~QdanJ{k8Un5w=?0n+}^aR z+lOc+B~I=#iqOXeJn1PIZGtUG4@RJjpJ^d?Jl`)M2gcc^HxnF` z4VP{ljE~)zDAL5#yqeP?3ytGKVpoSFB({!yzKPPGM$J;rDoH91;hGMSSXhgYqUmhD#H7%ejaT zb5%yEkdN*-M#%?0r~3k*a=V+)(oFNq`59d>`beH$*|L#iZyVBqoX0R9p=hiu<{0}! zmB1V{c<`C`50?d=Bqxm-Y*f%p4!KNgw+1ilplvZ1V5UN=Z)RfsbAe$(ouE;=F!=_+5i2dQpo53qDrIft=AY|Wh)2m(8!(4nr|>(!Gf$#vWjK| zFBE6HssUnNG7@pGVmLLB^(HHlsqYq0-z)e+>b|UcUP@ArJQ~4LyOz98LNMl zFPB3IS-#O7>p?RP1Rs&tWcE*J`|Nj+yW}nF2iaSEx>*!!UgIKb-Dl9k3+z_)#?C{~ zOV;S|_aU@bITdv|p3}@-WFM@bttMsDLUe+wfh1;^&b6Dd?fBX-WD{xeZ~{pWsR2*uU)_uaPTu z>-R1qkM$eJzP@HYK86UHZS(~v;PIdTT68G)@o5L@>*DCZygaU%<38HV=gq9r;=Ta=WysLm z@{w-4lCKX?lr02r&%B-R!wjX}26L56>&=2j!I-&6(8q4y*-fE&jvRfP@*Qa{pYNku z&nMs!OS6BMXV}xv9C{6F>#r(P(OBO1(GKP~?H#|E>W_$itS%Uxnbo8<#U*C!?xkC{ zg5DZytg9~?(y@-!I&g!(*BC!To5=}k1)sA+!yYy>pP$`* zRBo$9U*V?c!5jJ!?sF!Naaj<|V&WRrs;HC_?rGjW2}a*BAFcbv+7xCkdVkw1dgo5G z=#$!OkQy_oRBnuXtbJ&6cGIa?pmSmw%Qvj<0}RK!d}$?ZT_0wl@jEKH6Rd~v7Id(y zFrDYD%qg~^oxEW=@;+~s{59ows&n}&iTyZsFm;<}cEq?4xcX>Kn-ONRop5rfc|%vH zkHxGmW#MGfjxky$e*WRY^C|vIp47b% zA#>}f^YzoZy2)KaH^l%)7et+Orv-Y2y+{=bTU07W8h`rVgLYO5)E?z literal 0 HcmV?d00001 diff --git a/samples/samples.sln b/samples/samples.sln index 9b89d2b..79a1ec1 100644 --- a/samples/samples.sln +++ b/samples/samples.sln @@ -336,6 +336,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "replace_text_with_sax_cs", EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "replace_text_with_sax_vb", "word\replace_text_with_sax\vb\replace_text_with_sax_vb.vbproj", "{6EB91F44-EC13-5354-0450-9A2687C3B169}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "reply_to_comment_cs", "presentation\reply_to_comment\cs\reply_to_comment_cs.csproj", "{DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "reply_to_comment_vb", "presentation\reply_to_comment\vb\reply_to_comment_vb.vbproj", "{6A4A278C-2304-47C6-9D7B-4C8D046FE719}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2278,6 +2282,30 @@ Global {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x64.Build.0 = Release|Any CPU {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x86.ActiveCfg = Release|Any CPU {6EB91F44-EC13-5354-0450-9A2687C3B169}.Release|x86.Build.0 = Release|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Debug|x64.ActiveCfg = Debug|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Debug|x64.Build.0 = Debug|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Debug|x86.ActiveCfg = Debug|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Debug|x86.Build.0 = Debug|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Release|Any CPU.Build.0 = Release|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Release|x64.ActiveCfg = Release|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Release|x64.Build.0 = Release|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Release|x86.ActiveCfg = Release|Any CPU + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37}.Release|x86.Build.0 = Release|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Debug|x64.ActiveCfg = Debug|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Debug|x64.Build.0 = Debug|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Debug|x86.ActiveCfg = Debug|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Debug|x86.Build.0 = Debug|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Release|Any CPU.Build.0 = Release|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Release|x64.ActiveCfg = Release|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Release|x64.Build.0 = Release|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Release|x86.ActiveCfg = Release|Any CPU + {6A4A278C-2304-47C6-9D7B-4C8D046FE719}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2443,6 +2471,8 @@ Global {2DD90EFB-7F2A-497B-A0F4-EE5F62A49BA4} = {7ACDC26B-C774-4004-8553-87E862D1E71F} {4C514047-64B5-1383-4564-B827B846A6A7} = {D207D3D7-FD4D-4FD4-A7D0-79A82086FB6F} {6EB91F44-EC13-5354-0450-9A2687C3B169} = {D207D3D7-FD4D-4FD4-A7D0-79A82086FB6F} + {DD6D10D2-709D-48EC-81C4-7FEC05E7FF37} = {CDB9D4A6-7A7A-4CDF-A7A3-4F17F5F1602D} + {6A4A278C-2304-47C6-9D7B-4C8D046FE719} = {CDB9D4A6-7A7A-4CDF-A7A3-4F17F5F1602D} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {721B3030-08D7-4412-9087-D1CFBB3F5046} From 81386b3fe8908874f0e83ce3bfdd066385e9519d Mon Sep 17 00:00:00 2001 From: Michael Bowen <10384982+mikeebowen@users.noreply.github.com> Date: Tue, 12 Aug 2025 15:50:02 -0700 Subject: [PATCH 3/3] add .gitattributes file --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..5f61bd1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.cs text +*.vb text